package contexts import ( "context" "time" ) type detached struct { ctx context.Context } func (detached) Deadline() (time.Time, bool) { return time.Time{}, false } func (detached) Done() <-chan struct{} { return nil } func (detached) Err() error { return nil } func (d detached) Value(key interface{}) interface{} { return d.ctx.Value(key) } func Detach(ctx context.Context) context.Context { return detached{ctx: ctx} }