名前空間
変種
操作

atomic_fetch_or, atomic_fetch_or_explicit

提供: cppreference.com
< c‎ | atomic
ヘッダ <stdatomic.h> で定義
C atomic_fetch_or( volatile A* obj, M arg );
(1) (C11およびそれ以降)
C atomic_fetch_or_explicit( volatile A* obj, M arg, memory_order order );
(2) (C11およびそれ以降)

obj の指す値を obj の古い値と arg のビット単位の論理和を取った結果でアトミックに置き換え、 obj がそれまで保持していた値を返します。 この操作は読み込み-変更-書き込み操作です。 1つめのバージョンは memory_order_seq_cst に従ってメモリアクセスを順序付けし、 2つめのバージョンは order に従ってメモリアクセスを順序付けします。

これはすべてのアトミックオブジェクト型 A に対して定義される総称関数です。 引数は非 volatile と volatile (メモリマップド I/O など) 両方のアトミック変数のアドレスを受理するための volatile アトミック型へのポインタです。 MA がアトミック整数型の場合は A に対応する非アトミック型、 A がアトミックポインタ型の場合は ptrdiff_t です。

目次

[編集] 引数

obj - 変更するアトミックオブジェクトを指すポインタ
arg - アトミックオブジェクトに格納されている値とビット単位の論理和を取る値
order - この操作に対するメモリ同期順序付け。 すべての値を指定できます

[編集] 戻り値

obj の指すアトミックオブジェクトがそれまで保持していた値。

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.17.7.5 The atomic_fetch and modify generic functions (p: 284-285)

[編集] 関連項目

atomic_fetch_oratomic_fetch_or_explicit
(C11)
アトミックな論理和
(関数) [edit]
アトミックな排他的論理和
(関数) [edit]
atomic_fetch_or, atomic_fetch_or_explicitC++リファレンス