| // +build ignore,OMIT |
| |
| package context |
| |
| import "time" |
| |
| // A Context carries a deadline, cancelation signal, and request-scoped values |
| // across API boundaries. Its methods are safe for simultaneous use by multiple |
| // goroutines. |
| type Context interface { |
| Done() <-chan struct{} // closed when this Context is canceled |
| Err() error // why this Context was canceled |
| Deadline() (deadline time.Time, ok bool) // when this Context will be canceled |
| Value(key interface{}) interface{} // data associated with this Context |
| } |
| |
| // WithCancel returns a copy of parent whose Done channel is closed as soon as |
| // parent.Done is closed or cancel is called. |
| func WithCancel(parent Context) (ctx Context, cancel CancelFunc) |
| |
| // A CancelFunc cancels a Context. |
| type CancelFunc func() |
| |
| // WithTimeout returns a copy of parent whose Done channel is closed as soon as |
| // parent.Done is closed, cancel is called, or timeout elapses. The new |
| // Context's Deadline is the sooner of now+timeout and the parent's deadline, if |
| // any. If the timer is still running, the cancel function releases its |
| // resources. |
| func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) |
| |
| // WithValue returns a copy of parent whose Value method returns val for key. |
| func WithValue(parent Context, key interface{}, val interface{}) Context |
| |
| // Background returns an empty Context. It is never canceled, has no deadline, |
| // and has no values. Background is typically used in main, init, and tests, |
| // and as the top-level Context for incoming requests. |
| func Background() Context |