если в этой таске что-то произошло, мне надо перестать дальше таски спавнить. Это как-то через контекст делается или errgroup ? Вот пример кода:
func(){
bruteSignalChan<- struct{}{}
for {
select {
case res := <-signalChan:
fmt.Printf("%v: %s\n", res.dcrt, res.pass)
// при сигнале вот тут нужно выйти из ф-ции
return
case <-bruteSignalChan:
for v := range dict {
wg.Add(1)
pool.AddTask(wpool.NewTask(func(i interface{}) error {
//...
if (...) {
signalChan<- result{}
}
}, work{}))
}
}
}
}()
Что значит выйти? У тебя уже есть return
Я понимаю, но он либо не срабатывает, либо я не знаю почему не завершается
Ну значит в канал который ты читаешь ничего не приходит
Во время того как работает case <-bruteSignalChan: нужно чтобы оно в первый кейс заходило, если нужно
Обсуждают сегодня