std::atomic_notify_one - cppreference.com (original) (raw)
| Defined in header | ||
|---|---|---|
| template< class T > void atomic_notify_one( std::atomic<T>* object ); | (1) | (since C++20) |
| template< class T > void atomic_notify_one( volatile std::atomic<T>* object ); | (2) | (since C++20) |
Performs atomic notifying operations.
If there is a thread blocked in atomic waiting operation (i.e. std::atomic_wait(), std::atomic_wait_explicit(), or std::atomic::wait()) on *object, then unblocks at least one such thread; otherwise does nothing.
Equivalent to object->notify_one().
[edit] Parameters
| object | - | pointer to the atomic object to notify |
|---|
[edit] Return value
(none)
[edit] Notes
This form of change-detection is often more efficient than simple polling or pure spinlocks.
[edit] Example
[edit] See also
| | notifies at least one thread waiting on the atomic object (public member function of std::atomic) [edit] | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | notifies all threads blocked waiting on the atomic object (public member function of std::atomic) [edit] | | | notifies all threads blocked in atomic_wait (function template) [edit] | | | blocks the thread until notified and the atomic value changes (function template) [edit] |