Lines Matching refs:promise_handle
72 scope::promise_handle scope::state::adopt_promise( in adopt_promise()
87 return promise_handle(this, promise_holder); in adopt_promise()
93 return promise_handle{}; in adopt_promise()
96 void scope::state::drop_promise(promise_handle promise_handle) { in drop_promise() argument
97 if (!promise_handle.promise_holder) { in drop_promise()
102 std::lock_guard<std::mutex> lock(promise_handle.state->mutex_); in drop_promise()
107 assert(promise_handle.state->promise_handle_count_ > 0); in drop_promise()
108 promise_handle.state->promise_handle_count_--; in drop_promise()
109 if (!promise_handle.state->exited()) { in drop_promise()
110 if (promise_handle.promise_holder->next) { in drop_promise()
111 promise_handle.promise_holder->next->prev = in drop_promise()
112 promise_handle.promise_holder->prev; in drop_promise()
114 if (promise_handle.promise_holder->prev) { in drop_promise()
115 promise_handle.promise_holder->prev->next = in drop_promise()
116 promise_handle.promise_holder->next; in drop_promise()
118 promise_handle.state->head_promise_holder_ = in drop_promise()
119 promise_handle.promise_holder->next; in drop_promise()
122 } else if (!promise_handle.state->should_delete_self()) { in drop_promise()
126 promise_handle.promise_holder = nullptr; in drop_promise()
131 if (promise_handle.promise_holder) { in drop_promise()
132 delete promise_handle.promise_holder; in drop_promise()
134 delete promise_handle.state; in drop_promise()
139 promise_handle promise_handle) { in try_acquire_promise() argument
140 if (promise_handle.promise_holder) { in try_acquire_promise()
141 uint64_t prior_count = promise_handle.state->acquired_promise_count_.fetch_add( in try_acquire_promise()
144 return promise_handle.promise_holder; in try_acquire_promise()
146 promise_handle.state->acquired_promise_count_.fetch_sub( in try_acquire_promise()
152 void scope::state::release_promise(promise_handle promise_handle) { in release_promise() argument
153 promise_handle.state->acquired_promise_count_.fetch_sub( in release_promise()