• Задача
  • Решение
  • Обсуждение

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
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

00:00:00
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки