1#ifndef NEFORCE_CORE_ASYNC_MEMORY_ORDER_HPP__
2#define NEFORCE_CORE_ASYNC_MEMORY_ORDER_HPP__
13NEFORCE_BEGIN_NAMESPACE__
186#if defined(NEFORCE_ARCH_X86) && defined(NEFORCE_USING_INTEL_TSX)
273#ifdef NEFORCE_SUPPORT_INTEL_TSX
281 return failure_order | modifiers;
286 return failure_order;
297#ifdef NEFORCE_SUPPORT_INTEL_TSX
309NEFORCE_END_NAMESPACE__
unsigned int uint32_t
32位无符号整数类型
long long int64_t
64位有符号整数类型
constexpr enable_if_t< is_floating_point_v< T >, T > mod(const T x, const T y)
浮点数取模运算
constexpr bool is_valid_cmpexch_failure_order(const memory_order mo) noexcept
检查比较交换失败内存顺序是否有效
constexpr auto memory_order_release
释放内存顺序常量
constexpr auto memory_order_seq_cst
顺序一致性内存顺序常量
constexpr auto memory_order_relaxed
宽松内存顺序常量
constexpr memory_order operator|(memory_order mo, memory_order_modifier mod) noexcept
内存顺序与修饰符的或操作符
constexpr auto memory_order_acquire
获取内存顺序常量
constexpr auto memory_order_consume
数据依赖内存顺序常量
constexpr memory_order operator&(memory_order mo, memory_order_modifier mod) noexcept
内存顺序与修饰符的与操作符
constexpr auto memory_order_acq_rel
获取-释放内存顺序常量
rtm_status_flag
RTM事务状态标志位定义
memory_order_modifier
内存顺序修饰符枚举
constexpr memory_order cmpexch_failure_order(const memory_order mo) noexcept
获取原子比较交换操作失败时的内存顺序
@ release
释放操作,确保前面的读写不会被重排到后面
@ acquire
获取操作,确保后续读写不会被重排到前面
@ consume
数据依赖顺序,用于依赖读取的场景
@ xabort_explicit
由XABORT指令显式中止
@ memory_conflict
与其他逻辑处理器内存冲突
@ memory_order_rtm_begin
RTM事务开始修饰符
@ memory_order_mask
内存顺序掩码
@ memory_order_rtm_end
RTM事务结束修饰符
@ memory_order_rtm_abort
RTM事务中止修饰符
@ memory_order_modifier_mask
修饰符掩码
@ memory_order_hle_acquire
HLE获取修饰符
@ memory_order_hle_release
HLE释放修饰符