Size: a a a

2020 July 02

Д

Дмитрий in Go-go!
мне нужно по закрытию контекста ресурсы высвободить, т.е. убить горутину, и много чего ещё, если я заспавню ещё одну горутину, то она просто будет точно также висать в recv, просто слать в канал иногда
источник

Д

Дмитрий in Go-go!
я знаю про
go func() { 
   for {
       b, err := conn.Rcv()
       out <- b
   }
}()
источник

Д

Дмитрий in Go-go!
даже если в select завернуть, все равно Rcv будет ждать
источник

VS

Vladimir Smirnov in Go-go!
Дмитрий
Ну и причем тут go func и select? тут уже есть это (по крайней мере select)
а conn это кто? А то вроде бы у net.*Conn нет такого метода как Recv
источник

с

сонная википедия... in Go-go!
если вы закроете соединение, то вторая горутина тоже должна выйти
с ошибкой

если функция изначально не поддерживает вообще никаких способов прервать ее выполнение, то вы никак не разблокируете горутину
источник

S

Sergey in Go-go!
ну вот и делай её в отдельной горутине. а в первой - на ctx.Done делай conn.Close()
источник

с

сонная википедия... in Go-go!
Vladimir Smirnov
а conn это кто? А то вроде бы у net.*Conn нет такого метода как Recv
+
источник

Д

Дмитрий in Go-go!
Vladimir Smirnov
а conn это кто? А то вроде бы у net.*Conn нет такого метода как Recv
conn это свой враппер поверх определенного коннекта.
источник

Д

Дмитрий in Go-go!
Sergey
ну вот и делай её в отдельной горутине. а в первой - на ctx.Done делай conn.Close()
а вот это решение
источник

Д

Дмитрий in Go-go!
спасибо, чет я тупанул что монжо закрытие в одну горутину, а чтение в другую, а при закрытии читающая выйдет с ошибкой
источник

Д

Дмитрий in Go-go!
верно
источник

VS

Vladimir Smirnov in Go-go!
Дмитрий
conn это свой враппер поверх определенного коннекта.
тогда вопрос где именно блокирование? И наверное вопрос еще - какого хрена у тебя этот коннект все еще открыт когда таймаут случился?
источник

Д

Дмитрий in Go-go!
там вебсокет :)
источник

И

Иисус in Go-go!
https://ibb.co/wRHwPMQ

Подскажите, пожалуйста, в чём проблема?
Пишет ошибку:

Expected
   <int>: -1
to equal
   <int>: 3
источник

LS

Leonid Starchenko in Go-go!
Иисус
https://ibb.co/wRHwPMQ

Подскажите, пожалуйста, в чём проблема?
Пишет ошибку:

Expected
   <int>: -1
to equal
   <int>: 3
Начнем с того что код условия в иф, прописан не совсем грамотно
источник

И

Иисус in Go-go!
Leonid Starchenko
Начнем с того что код условия в иф, прописан не совсем грамотно
А как было бы правильнее?
источник

LS

Leonid Starchenko in Go-go!
Иисус
А как было бы правильнее?
Сек, во вторых, ошибку тебе выдает при тесте 10,0.6,10,-1?
источник

LS

Leonid Starchenko in Go-go!
-3 возвращает, потому что, 0.6 не больше 1
источник

И

Иисус in Go-go!
Leonid Starchenko
Сек, во вторых, ошибку тебе выдает при тесте 10,0.6,10,-1?
Я тут немножко подшаманил уже, сейчас по-другому.
источник

И

Иисус in Go-go!
package kata

func BouncingBall(h, bounce, window float64) int {
 if h>0 && 1>bounce && bounce>0 && window<h {
 return 3
 }
 return -1
}
источник