home | help
std::atomic_flag::wait(3)      C++ Standard Libary     std::atomic_flag::wait(3)

NAME
     std::atomic_flag::wait - std::atomic_flag::wait

Synopsis
	void wait( bool old, std::memory_order order =
				 std::memory_order::seq_cst  )	const	     (1)
     (since C++20)
	noexcept;
	void wait( bool old, std::memory_order order =
				 std::memory_order::seq_cst )  const	     (2)
     (since C++20)
	volatile noexcept;

	Performs atomic waiting operations. Behaves as if it repeatedly performs
     the
	following steps:

	  * Compare this->test(order) with that of old.
	       *  If those are equal, then blocks until *this is notified by no-
     tify_one() or
		 notify_all(), or the thread is unblocked spuriously.
	       * Otherwise, returns.

	These functions are guaranteed to return only if value has changed, even
     if
	underlying implementation unblocks spuriously.

	If  order  is  one  of	std::memory_order::release  and  std::memory_or-
     der::acq_rel, the
	behavior is undefined.

Parameters
	old   - the value to check the atomic_flag's object no longer contains
	order - memory order constraints to enforce

Return value
	(none)

Notes
	This  form  of	change-detection  is  often  more  efficient than simple
     polling or pure
	spinlocks.

	Due to the ABA problem, transient changes from old to another value  and
     back to old
	might be missed, and not unblock.

Example
	 This section is incomplete
	 Reason: no example

See also
	notify_one		notifies  at  least  one  thread  waiting on the
     atomic object
	(C++20) 	       (public member function)
	notify_all	       notifies  all  threads  blocked	waiting  on  the
     atomic object
	(C++20) 	       (public member function)
	atomic_flag_notify_one notifies a thread blocked in atomic_flag_wait
	(C++20) 	       (function)
	atomic_flag_notify_all notifies all threads blocked in atomic_flag_wait
	(C++20) 	       (function)

Category:
	  * Todo no example

http://cppreference.com 	   2024.06.10	       std::atomic_flag::wait(3)

home | help