Вопрос: Как сделать контекст-отменяемый generator, чтобы не было утечек?
Python
Senior
Без компании
Вопрос: Как сделать контекст-отменяемый generator, чтобы не было утечек?
Ответы
```go
func genCtx(ctx context.Context) <-chan int {
out := make(chan int)
go func() {
defer close(out)
for i := 0; ; i++ {
select {
case <-ctx.Done():
return
case out <- i:
}
}
}()
return out
}
```
**Как это работает:** producer проверяет `ctx.Done()` и выходит, если consumer больше не нуждается в данных.