函式
<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 操作進行排序。

返回值



資料競爭

呼叫此函式不會啟動資料競爭。

異常安全

無異常保證: 絕不丟擲異常。

另見