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

Подушка отмены

Напишете функцию sleep, которая заставляет программу «спать» заданное время. Но иногда жизнь вмешивается — и сон нужно прервать раньше.

Функция должна:

  • Заснуть на указанное время.
  • Прекратить сон, если ей скажут через context.Context.

go

package main

import (
“context”
“time”
)

func sleep(ctx context.Context, duration time.Duration) error {
timer := time.NewTimer(duration)
defer timer.Stop()

select {
case <-timer.C: return nil // Время вышло case <-ctx.Done(): return ctx.Err() // Прервано } }

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

00:00:00