Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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 per-
       forms the
	  following steps:

	    * Compare this->test(order)	with that of old.
		 *  If those are equal,	then blocks until *this	is notified by
       notify_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  con-
       tains
	  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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::atomic_flag::wait&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help