| //go:build OMIT |
| // +build OMIT |
| |
| package context |
| |
| import "time" |
| |
| // A Context carries a deadline, cancellation signal, and request-scoped values |
| // across API boundaries. Its methods are safe for simultaneous use by multiple |
| // goroutines. |
| type Context interface { |
| // Done returns a channel that is closed when this Context is canceled |
| // or times out. |
| Done() <-chan struct{} |
| |
| // Err indicates why this context was canceled, after the Done channel |
| // is closed. |
| Err() error |
| |
| // Deadline returns the time when this Context will be canceled, if any. |
| Deadline() (deadline time.Time, ok bool) |
| |
| // Value returns the value associated with key or nil if none. |
| Value(key interface{}) interface{} |
| } |
| |
| // 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 |