| 3022 | operationResult = result; |
| 3023 | clearTaskCallbacks(); |
| 3024 | continuation.resume(); |
| 3025 | } |
| 3026 | |
| 3027 | void AwaitTaskRegistryWaitAnyAwaiter::clearTaskCallbacks() |
| 3028 | { |
| 3029 | for (size_t idx = 0; idx < registry.tasks.sizeInElements(); ++idx) |
| 3030 | { |
| 3031 | AwaitTask& task = registry.tasks[idx]; |
| 3032 | if (not task.isValid()) |
| 3033 | { |
| 3034 | continue; |
| 3035 | } |
| 3036 | AwaitTask::Promise& promise = task.handle.promise(); |
| 3037 | if (promise.completionObject == this) |
| 3038 | { |
| 3039 | promise.completionObject = nullptr; |
| 3040 | promise.completionCallback = nullptr; |
| 3041 | } |
| 3042 | } |
| 3043 | } |