github.com/aavshr/aws-sdk-go@v1.41.3/aws/context_sleep.go (about) 1 package aws 2 3 import ( 4 "time" 5 ) 6 7 // SleepWithContext will wait for the timer duration to expire, or the context 8 // is canceled. Which ever happens first. If the context is canceled the Context's 9 // error will be returned. 10 // 11 // Expects Context to always return a non-nil error if the Done channel is closed. 12 func SleepWithContext(ctx Context, dur time.Duration) error { 13 t := time.NewTimer(dur) 14 defer t.Stop() 15 16 select { 17 case <-t.C: 18 break 19 case <-ctx.Done(): 20 return ctx.Err() 21 } 22 23 return nil 24 }