19 #include <experimental/coroutine> 108 return state_.compare_exchange_strong(
111 std::memory_order_acquire,
112 std::memory_order_relaxed);
161 std::experimental::coroutine_handle<> awaitingCoroutine) noexcept {
181 return std::unique_lock<Mutex>{
mutex_, std::adopt_lock};
LockOperation co_lock() noexcept
std::atomic< void * > state_
bool await_suspend(std::experimental::coroutine_handle<> awaitingCoroutine) noexcept
bool await_ready() noexcept
—— Concurrent Priority Queue Implementation ——
std::unique_lock< Mutex > await_resume() noexcept
requires E e noexcept(noexcept(s.error(std::move(e))))
Mutex() noexcept
Construct a new async mutex that is initially unlocked.
void * unlockedState() noexcept
Mutex & operator=(const Mutex &)=delete
LockOperation(Mutex &mutex) noexcept
ScopedLockOperation co_scoped_lock() noexcept
bool lockAsyncImpl(LockOperation *awaiter)
void await_resume() noexcept
std::experimental::coroutine_handle awaitingCoroutine_