28 : std::logic_error {
"double await" }
35 if (this->Continuation_.exchange (handle))
41 this->Continuation_.exchange ({});
46 return self.Continuation_.exchange ({});
50 template<
typename... Extensions>
51 requires (IsAwaiterHandler<Extensions> || ...)
65 template<
typename... Extensions>
66 requires (IsLockingHandler<Extensions> || ...)
79 return std::move (ret);
83 template<
typename... Extensions>
84 requires (IsResumeValueHandler<Extensions> || ...)
auto GetAwaiters(this auto &&self) noexcept
void RemoveAwaiter(std::coroutine_handle<>) noexcept
void AddAwaiter(std::coroutine_handle<> handle)
std::atomic< std::coroutine_handle<> > Continuation_
static R && ResumeValue(R &ret) noexcept