Or-done — паттерн, который позволяет читать из канала с возможностью отмены через done-канал. Без него приходится в каждом select писать case <-done. Хелпер orDone(done, c) возвращает новый канал, который закрывается когда закрыт done или c. Внутри — горутина с select: case v := <-c: отправить в out, case <-done: return. Упрощает код pipeline — каждая стадия просто читает из orDone канала и не думает об отмене.
Что такое or-done channel?
Middle
179 просмотровAFK Offer AI
Что такое gopark и goready?