MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
atomic_flag结构体 参考

原子标志 更多...

#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_
 原子标志值

详细描述

原子标志

最简单的原子类型。

在文件 atomic_base.hpp1335 行定义.

构造及析构函数说明

◆ atomic_flag()

atomic_flag::atomic_flag ( const value_type flag)
inlineconstexprnoexcept

构造函数

参数
flag初始标志值

在文件 atomic_base.hpp1360 行定义.

引用了 flag_.

成员函数说明

◆ clear()

MSTL_ALWAYS_INLINE void atomic_flag::clear ( const memory_order mo = memory_order_seq_cst)
inlinenoexcept

清除标志

参数
mo内存顺序

在文件 atomic_base.hpp1472 行定义.

引用了 _MSTL, atomic_store(), flag_, memory_order_acq_rel, memory_order_acquire, memory_order_consume, memory_order_mask , 以及 memory_order_seq_cst.

◆ test()

MSTL_ALWAYS_INLINE bool atomic_flag::test ( const memory_order mo = memory_order_seq_cst) const
inlinenoexcept

测试标志值

参数
mo内存顺序
返回
当前标志值

在文件 atomic_base.hpp1399 行定义.

引用了 flag_, memory_order_relaxed , 以及 memory_order_seq_cst.

被这些函数引用 wait() , 以及 wait().

◆ test_and_set()

MSTL_ALWAYS_INLINE bool atomic_flag::test_and_set ( const memory_order mo = memory_order_seq_cst)
inlinenoexcept

测试并设置标志

参数
mo内存顺序
返回
设置前的标志值

在文件 atomic_base.hpp1369 行定义.

引用了 flag_ , 以及 memory_order_seq_cst.

◆ wait()

MSTL_ALWAYS_INLINE void atomic_flag::wait ( const bool old,
const memory_order mo = memory_order_seq_cst ) const
inlinenoexcept

等待标志值改变

参数
old期望的旧值
mo内存顺序

在文件 atomic_base.hpp1433 行定义.

引用了 _MSTL, atomic_wait_address_v(), flag_, memory_order_seq_cst , 以及 test().


该结构体的文档由以下文件生成: