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  }