Урок 116 · Задача 1

DrainWithTimeout: ждать с границей

Ждать вечно при зависшем воркере — тоже баг. Реализуйте drainWithTimeout(wg *sync.WaitGroup, timeout) bool: ждать wg через done-канал или таймаут.

00:00:00
Показать решение
GolangРешение
func drainWithTimeout(wg *sync.WaitGroup, timeout time.Duration) bool {
	done := make(chan struct{})
	go func() {
		wg.Wait()
		close(done)
	}()
	select {
	case <-done:
		return true
	case <-time.After(timeout):
		return false
	}
}
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки