common.go 246 Bytes EditWeb IDE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package clock import ( "context" "time" ) func sleepCtx(ctx context.Context, d time.Duration, c Clock) error { timer := c.NewTimer(d) defer timer.Stop() select { case <-ctx.Done(): return ctx.Err() case <-timer.Ch(): return nil } }