Паттерн done-канала?

Ответ

Канал done (часто chan struct{}) сигнализирует отмену. Закрытие done - широковещательный сигнал всем: select { case <-done: return }. Либо передают контекст с отменой вместо отдельного канала. Закрывает тот, кто инициирует остановку.

done := make(chan struct{})
go func() { <-sig; close(done) }()
select { case <-done: return; case v := <-ch: ... }
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.