mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-01-02 15:36:41 -05:00
use value delegate to separate value and cancel
This is a issue with the usage of context for value storage and cancell signaling. This issue will be addressed in a permanent way in v5.
This commit is contained in:
parent
3c17276462
commit
90b560cd75
12
context.go
12
context.go
@ -49,6 +49,14 @@ func toContext(ctx context.Context, v *Instance) context.Context {
|
||||
Internal API
|
||||
*/
|
||||
func ToBackgroundDetachedContext(ctx context.Context) context.Context {
|
||||
instance := MustFromContext(ctx)
|
||||
return toContext(context.Background(), instance)
|
||||
return &temporaryValueDelegationFix{context.Background(), ctx}
|
||||
}
|
||||
|
||||
type temporaryValueDelegationFix struct {
|
||||
context.Context
|
||||
value context.Context
|
||||
}
|
||||
|
||||
func (t *temporaryValueDelegationFix) Value(key interface{}) interface{} {
|
||||
return t.value.Value(key)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user