// Detach returns a context that keeps all the values of its parent context // but detaches from the cancellation and error handling. func Detach(ctx context.Context) context.Context { … } type detachedContext … func (v detachedContext) Deadline() (time.Time, bool) { … } func (v detachedContext) Done() <-chan struct{ … } func (v detachedContext) Err() error { … } func (v detachedContext) Value(key interface{ … }