File tree 1 file changed +15
-7
lines changed
1 file changed +15
-7
lines changed Original file line number Diff line number Diff line change @@ -92,15 +92,23 @@ extension OpenFeatureAPI {
92
92
}
93
93
94
94
public func setProviderAndWait( provider: FeatureProvider , initialContext: EvaluationContext ? ) async {
95
- var holder : [ AnyCancellable ] = [ ]
96
- await withCheckedContinuation { continuation in
97
- let stateObserver = provider. observe ( ) . sink {
98
- if $0 == . ready {
99
- continuation. resume ( )
95
+ let task = Task {
96
+ var holder : [ AnyCancellable ] = [ ]
97
+ await withCheckedContinuation { continuation in
98
+ let stateObserver = provider. observe ( ) . sink {
99
+ if $0 == . ready {
100
+ continuation. resume ( )
101
+ holder. removeAll ( )
102
+ }
100
103
}
104
+ stateObserver. store ( in: & holder)
105
+ setProvider ( provider: provider, initialContext: initialContext)
101
106
}
102
- stateObserver. store ( in: & holder)
103
- setProvider ( provider: provider, initialContext: initialContext)
107
+ }
108
+ await withTaskCancellationHandler {
109
+ await task. value
110
+ } onCancel: {
111
+ task. cancel ( )
104
112
}
105
113
}
106
114
}
You can’t perform that action at this time.
0 commit comments