Ilya
Через него останавливай горутины
Ilya
Он для этого в том числе и создан
Anonymous
А как можно останавливать горутины?
Mike
вот контекстом судя по докам
Ilya
Return :)
Mike
пошел читать короч, спс
Ilya
Пожалуйста, заходи еще :)
Mike
а слушай, можно же проще
Mike
я могу просто закрывать канал
Mike
или это приведет к ошибкам?
Mike
то есть вопрос вот в чем, что происходит с теми, кто ждет инфы от канала, если он закрылся
Anonymous
ничего
Mike
ничего в смысле они так и висят, в смысле они сворачиваются, в смысле они падают?
Илья
никто сам не падает
Илья
https://dave.cheney.net/2014/03/19/channel-axioms
Ilya
Можно и просто закрывать, но я бы попрактиковался в использовании контекста - будет полезно в будущем.
Brown
Mike
ну у меня есть канал остановки
Mike
он просто во внешней логике
Mike
ну я понял в общем-то
Mike
дальше сам уже буду думать, как бы организовать по-красивее
Anonymous
Кстати, вот так можно останавливать горутины https://play.golang.org/p/BFRPvMnfGh
Anton
Anton
просто лишенго кода много для понимания тяжело, wg проще будет код и можно только то что хочешь показать хорошо выделить
engelbart
А есть такой же пример с контекстами
Anonymous
http://guzalexander.com/2017/05/31/gracefully-exit-server-in-go.html и https://pastebin.com/ZgpBBCpt
engelbart
Спасибо!
Aleksandr
Aleksandr
Mike
хах, я в итоге совсем по-другому сделал, у меня очередь, в которую если влезает, горутина запускается, а если нет — даже не запускается
Mike
но я словил классный эксепшн, который пока не понимаю, что значит
Mike
там просто насрано в стектрейсе причем столько, что не лезет в терминал, полностью его затирает с самого начала
Mike
про это есть issue на гитхабе, но там сказали в итоге забить и делать иначе
Mike
типа в го это не фиксили пока)
Mike
Илья
м?
Илья
что за issue?
Mike
https://github.com/golang/go/issues/16079
Anonymous
Mike
вот у меня такой же трейс как у того чувака
Anonymous
go version?
Mike
1.8, но ошибка такая же
Mike
1.8.1 точнее
Anonymous
Хм, значит не успели или не захотели править))
Anonymous
Пишут, что нельзя выделить столько портов. 65к лимит. У вас такая же проблема?
Mike
я специально сделал очередь чтобы больше 500 коннектов одновременно открыто не было
Mike
прям очередь, в которую кладется айдишник рандомный, и запускается горутина, которая делает коннект, закрывает тело, после чего в канал свой айдишник пуляет и он из очереди удаляется
Mike
и если очередь кончилась, новая горутина даже не запускается
Mike
так что НУ ЕСЛИ Я НЕ ИДИОТ то больше 500 портов открыто быть не должно
Илья
запусти с -race
Mike
причем она успевает сделать что-то типа 7к запросов прежде чем упасть
Anonymous
netstat'ом гляньте чтобы убедиться
Anton 🇺🇦
какой аналог sleep() есть в го?
Илья
проверь на идиота :)
Илья
и netstat
Mike
Anonymous
Mike
лол, а я обычно делаю <- time.After(time.Second * 5)
Anton 🇺🇦
Anton 🇺🇦
Anonymous
https://golang.org/pkg/time/#Duration
Anonymous
Наносекунды короч под капотом
Anton 🇺🇦
горю с велосипедов
Илья
я горю в людей, которые даже golang tour не осиливают :(
engelbart
Anton 🇺🇦
Anonymous
Господин пейрат.
Anonymous
Йохохо, и бутылка смузи
Мерль
[last news]
Why I’m So Frustrated with Go
Nix
всем привет, подскажите как на go это будет выглядеть
$exampletest = substr($example, 0, $test);
Alexei
exampletest := example[:test] если я правильно понял
Nix
спасибо
I
Тут люди про взятие подстроки спрашивают, а я парюсь, что простые вопросы будут и отправят гуглить, поэтому и гуглю сразу)
engelbart
Некоторые машины на тротуар ставят, не повод же тоже самое делать