std::atomic_flag::clear

From cppreference.com
< cpp‎ | atomic‎ | atomic flag
 
 
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Safe Reclamation
(C++26)
Hazard Pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Memory ordering
Free functions for atomic operations
Free functions for atomic flags
 
 
Defined in header <atomic>
void clear( std::memory_order order =
                std::memory_order_seq_cst ) volatile noexcept;
(1) (since C++11)
void clear( std::memory_order order =
                std::memory_order_seq_cst ) noexcept;
(2) (since C++11)

Atomically changes the state of a std::atomic_flag to clear (false).

If order is one of std::memory_order_consume, std::memory_order_acquire and std::memory_order_acq_rel, the behavior is undefined.

Parameters

order - the memory synchronization ordering

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 2138 C++11 order could be std::memory_order_consume the behavior is undefined in this case

See also

atomically sets the flag to true and obtains its previous value
(public member function)
atomically sets the value of the flag to false
(function)
defines memory ordering constraints for the given atomic operation
(enum)