函数
<atomic>

atomic_signal_fence

extern "C" void atomic_signal_fence (memory_order sync) noexcept;
信号栅 (Signal fence)
建立一个单线程栅:此函数调用点成为单线程内的 acquirerelease(或两者皆是)排序点。

此函数等价于 atomic_thread_fence,不同之处在于调用不会发生跨线程同步。该函数作为一个编译器指令,阻止编译器进行涉及将写操作移至 releasing fence 之后或读操作移至 acquire fence 之前的优化。

参数

sync
操作的同步模式。
这应该是 memory_order 枚举类型的一种可能值。
内存顺序 (memory order)描述
memory_order_relaxed宽松 (Relaxed)调用没有其他影响。
memory_order_consume消费 (Consume)建立一个 acquire 信号栅
对指令进行排序,使其相对于同一线程中的上一个 releasesequentially consistent 操作。
memory_order_acquire获取 (Acquire)
memory_order_release释放 (Release)建立一个 release 信号栅
对指令进行排序,使其相对于同一线程中的下一个 acquire 操作。
memory_order_acq_rel获取/释放 (Acquire/Release)建立一个既是 acquire 栅 又是 release 栅 的信号栅。
所有指令相对于同一线程中的上一个 releasesequentially consistent 操作以及下一个 acquire 操作进行排序。
memory_order_seq_cst顺序一致 (Sequentially consistent)建立一个 顺序一致的获取和释放 信号栅。
所有指令相对于同一线程中的其他 sequentially consistent 操作进行排序。

返回值



数据竞争

调用此函数不会启动数据竞争。

异常安全

无异常保证: 绝不抛出异常。

另见