Namespaces
Variants

atomic_flag_test_and_set, atomic_flag_test_and_set_explicit

From cppreference.net
ヘッダーで定義 <stdatomic.h>
_Bool atomic_flag_test_and_set ( volatile atomic_flag * obj ) ;
(1) (C11以降)
_Bool atomic_flag_test_and_set_explicit ( volatile atomic_flag * obj, memory_order order ) ;
(2) (C11以降)

obj が指す atomic_flag の状態をアトミックに設定状態( true )に変更し、変更前の値を返します。最初のバージョンはメモリアクセスを memory_order_seq_cst に従って順序付けし、2番目のバージョンはメモリアクセスを order に従って順序付けします。

引数は、非volatileおよび volatile (例:メモリマップトI/O)アトミックフラグの両方のアドレスを受け入れるための、volatileアトミックフラグへのポインタです。

目次

パラメータ

obj - 変更対象のアトミックフラグオブジェクトへのポインタ
order - この操作に対するメモリ同期順序:すべての値が許可されます

戻り値

obj が指すアトミックフラグが以前保持していた値。

参考文献

  • C17規格 (ISO/IEC 9899:2018):
  • 7.17.8.1 atomic_flag_test_and_set関数 (p: 209)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.17.8.1 atomic_flag_test_and_set関数 (p: 285-286)

関連項目

アトミックフラグをfalseに設定
(関数)
C++ documentation for atomic_flag_test_and_set , atomic_flag_test_and_set_explicit