Work: слушать ctx.Done
Загрузка должна останавливаться при отмене. Реализуйте work(ctx context.Context, n int) int: делайте n шагов, в каждой блокирующей точке — select с ctx.Done(), при отмене верните число сделанных шагов.
Показать решение
GolangРешение
func work(ctx context.Context, n int) int {
done := 0
for i := 0; i < n; i++ {
select {
case <-ctx.Done():
return done
default:
}
done++
}
return done
}Записаться на разбор
10 000 ₽ · 60 минут · онлайн