Работает отлично, большое спасибо

отрим эту функцию:

func doAllWork() error {
    var wg sync.WaitGroup
    wg.Add(3)
    for i := 0; i < 2; i++ {
        go func() {
            defer wg.Done()
            for j := 0; j < 10; j++ {
                result, err := work(j)
                if err != nil {
                    // can't use `return err` here
                    // what sould I put instead ? 
                    os.Exit(0)
                }
            }
        }()
    }
    wg.Wait()
    return nil
}

В каждой горутине функцияwork() называется 10 раз. Если один звонокwork() возвращает ошибку в любой из запущенных программ, я хочу, чтобы все программы были немедленно остановлены, и программа была завершена. Это нормально использоватьos.Exit() Вот ? Как мне справиться с этим?

редактировать: этот вопрос отличается откак остановить горутин как здесь мне нужно закрыть все goroutines, если ошибка происходит в одном

Ответы на вопрос(0)

Ваш ответ на вопрос