tmc::atomic_condvar#
A wrapper around std::atomic<T>
which exposes async variants of wait()
and notify_*()
.
API Reference#
-
template<typename T>
class atomic_condvar# Wraps an atomic integral type. Exposes async analogues to
std::atomic<T>::wait()
andstd::atomic<T>::notify_*()
.Public Functions
-
inline atomic_condvar(T InitialValue) noexcept#
Sets the initial value of the contained atomic variable.
-
inline aw_atomic_condvar_co_notify<T> co_notify_one(size_t NotifyCount = 1) noexcept#
Wakes 1 awaiter that meet the criteria (expected != current value). The awaiter may be resumed by symmetric transfer if it is eligible (it resumes on the same executor and priority as the caller).
-
inline aw_atomic_condvar_co_notify<T> co_notify_n(size_t NotifyCount = 1) noexcept#
Wakes up to NotifyCount awaiters that meet the criteria (expected != current value). Up to one awaiter may be resumed by symmetric transfer if it is eligible (it resumes on the same executor and priority as the caller).
-
inline aw_atomic_condvar_co_notify<T> co_notify_all() noexcept#
Wakes all awaiters that meet the criteria (expected != current value). Up to one awaiter may be resumed by symmetric transfer if it is eligible (it resumes on the same executor and priority as the caller).
-
inline void notify_one()#
Wakes 1 awaiter that meet the criteria (expected != current value). Does not symmetric transfer; the awaiter will be posted to its executor.
-
inline void notify_n(size_t NotifyCount = 1)#
Wakes up to NotifyCount awaiters that meet the criteria (expected != current value). Does not symmetric transfer; awaiters will be posted to their executors.
-
inline void notify_all()#
Wakes all awaiters that meet the criteria (expected != current value). Does not symmetric transfer; awaiters will be posted to their executors.
-
inline aw_atomic_condvar<T> await(T Expected) noexcept#
Suspends until Expected != current value. If this condition is already true, resumes immediately.
-
inline ~atomic_condvar()#
On destruction, any awaiters will be resumed.
-
inline atomic_condvar(T InitialValue) noexcept#