|
MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
原子标志 更多...
#include <atomic_base.hpp>
Public 类型 | |
| using | value_type |
| 原子标志类型 | |
Public 成员函数 | |
| constexpr | atomic_flag (const value_type flag) noexcept |
| 构造函数 | |
| MSTL_ALWAYS_INLINE bool | test_and_set (const memory_order mo=memory_order_seq_cst) noexcept |
| 测试并设置标志 | |
| MSTL_ALWAYS_INLINE_INLINE bool | test_and_set (const memory_order mo=memory_order_seq_cst) volatile noexcept |
| volatile版本的测试并设置标志 | |
| MSTL_ALWAYS_INLINE bool | test (const memory_order mo=memory_order_seq_cst) const noexcept |
| 测试标志值 | |
| MSTL_ALWAYS_INLINE_INLINE bool | test (const memory_order mo=memory_order_seq_cst) const volatile noexcept |
| volatile版本的测试标志值 | |
| MSTL_ALWAYS_INLINE void | wait (const bool old, const memory_order mo=memory_order_seq_cst) const noexcept |
| 等待标志值改变 | |
| MSTL_ALWAYS_INLINE_INLINE void | wait (const bool old, const memory_order mo=memory_order_seq_cst) const volatile noexcept |
| volatile版本的等待标志值改变 | |
| MSTL_ALWAYS_INLINE void | notify_one () noexcept |
| 通知一个等待线程 | |
| MSTL_ALWAYS_INLINE void | notify_all () noexcept |
| 通知所有等待线程 | |
| MSTL_ALWAYS_INLINE void | clear (const memory_order mo=memory_order_seq_cst) noexcept |
| 清除标志 | |
| MSTL_ALWAYS_INLINE_INLINE void | clear (const memory_order mo=memory_order_seq_cst) volatile noexcept |
| volatile版本的清除标志 | |
Public 属性 | |
| value_type | flag_ |
| 原子标志值 | |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
清除标志
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1472 行定义.
引用了 _MSTL, atomic_store(), flag_, memory_order_acq_rel, memory_order_acquire, memory_order_consume, memory_order_mask , 以及 memory_order_seq_cst.
|
inlinenoexcept |
测试标志值
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1399 行定义.
引用了 flag_, memory_order_relaxed , 以及 memory_order_seq_cst.
|
inlinenoexcept |
|
inlinenoexcept |
等待标志值改变
| old | 期望的旧值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1433 行定义.
引用了 _MSTL, atomic_wait_address_v(), flag_, memory_order_seq_cst , 以及 test().