19 #include <experimental/coroutine> 106 std::experimental::coroutine_handle<> awaitingCoroutine) noexcept {
133 :
state_(initiallySignalled ? static_cast<void*>(
this) :
nullptr) {}
136 return state_.load(std::memory_order_acquire) ==
137 static_cast<const void*
>(
this);
145 state_.store(
nullptr, std::memory_order_relaxed);
bool await_suspend(std::experimental::coroutine_handle<> awaitingCoroutine) noexcept
bool waitImpl(WaitOperation *awaiter) const noexcept
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
std::atomic< void * > state_
bool await_ready() const noexcept
Baton(bool initiallySignalled=false) noexcept
Initialise the Baton to either the signalled or non-signalled state.
WaitOperation(const Baton &baton) noexcept
bool ready() const noexcept
Query whether the Baton is currently in the signalled state.
void await_resume() noexcept
std::experimental::coroutine_handle awaitingCoroutine_