atomic_flag Structure
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at atomic_flag Structure.
Describes an object that atomically sets and clears a bool flag. Operations on atomic flags are always lock-free.
struct atomic_flag;
Public Methods
| Name | Description |
|---|---|
| atomic_flag::clear Method | Sets the stored flag to false. |
| atomic_flag::test_and_set Method | Sets the stored flag to true and returns the initial flag value. |
atomic_flag objects can be passed to the non-member functions atomic_flag_clear, atomic_flag_clear_explicit, atomic_flag_test_and_set, and atomic_flag_test_and_set_explicit. They can be initialized by using the value ATOMIC_FLAG_INIT.
Header: atomic
Namespace: std
Sets the bool flag that is stored in *this to false, within the specified memory_order constraints.
void atomic_flag::clear(memory_order Order = memory_order_seq_cst) volatile noexcept; void atomic_flag::clear(memory_order Order = memory_order_seq_cst) noexcept;
Parameters
Order
A memory_order.
Sets the bool flag that is stored in *this to true, within the specified memory_order constraints.
bool atomic_flag::test_and_set(memory_order Order = memory_order_seq_cst) volatile noexcept; bool atomic_flag::test_and_set(memory_order Order = memory_order_seq_cst) noexcept;
Parameters
Order
A memory_order.
Return Value
The initial value of the flag that is stored in *this.