|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
原子标志 更多...
#include <atomic_base.hpp>
Public 类型 | |
| using | value_type |
| 原子标志类型 | |
Public 成员函数 | |
| constexpr | atomic_flag (const value_type flag) noexcept |
| 构造函数 | |
| bool | test_and_set (const memory_order mo=memory_order_seq_cst) noexcept |
| 测试并设置标志 | |
| bool | test_and_set (const memory_order mo=memory_order_seq_cst) volatile noexcept |
| volatile版本的测试并设置标志 | |
| bool | test (const memory_order mo=memory_order_seq_cst) const noexcept |
| 测试标志值 | |
| bool | test (const memory_order mo=memory_order_seq_cst) const volatile noexcept |
| volatile版本的测试标志值 | |
| void | wait (const bool old, const memory_order mo=memory_order_seq_cst) const noexcept |
| 等待标志值改变 | |
| void | wait (const bool old, const memory_order mo=memory_order_seq_cst) const volatile noexcept |
| volatile版本的等待标志值改变 | |
| void | notify_one () noexcept |
| 通知一个等待线程 | |
| void | notify_all () noexcept |
| 通知所有等待线程 | |
| void | clear (const memory_order mo=memory_order_seq_cst) noexcept |
| 清除标志 | |
| void | clear (const memory_order mo=memory_order_seq_cst) volatile noexcept |
| volatile版本的清除标志 | |
Public 属性 | |
| value_type | flag_ {static_cast<value_type>(0)} |
| 原子标志值 | |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
清除标志
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1401 行定义.
引用了 neforce::atomic_store(), flag_, neforce::memory_order_acq_rel, neforce::memory_order_acquire, neforce::memory_order_consume, memory_order_mask, neforce::memory_order_seq_cst , 以及 NEFORCE_CONSTEXPR_ASSERT.
|
inlinenodiscardnoexcept |
测试标志值
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1334 行定义.
引用了 flag_, neforce::memory_order_relaxed , 以及 neforce::memory_order_seq_cst.
|
inlinenoexcept |
测试并设置标志
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1302 行定义.
引用了 flag_ , 以及 neforce::memory_order_seq_cst.
|
inlinenoexcept |
等待标志值改变
| old | 期望的旧值 |
| mo | 内存顺序 |
在文件 atomic_base.hpp 第 1371 行定义.
引用了 neforce::atomic_wait_address_v(), flag_, neforce::memory_order_seq_cst , 以及 test().