タイトル通り。std::atomic<>
シグナル ハンドラで使用できますか? またはsig_atomic_t
他のコンパイラ機能を提供しますか?
1969 次
1 に答える
16
n3376 1.9/6
抽象マシンの処理がシグナルの受信によって中断されると、どちらでもないオブジェクトの値
— タイプ volatile std::sig_atomic_t nor
— ロックフリーのアトミックオブジェクト (29.4)
これら 2 つのカテゴリのいずれにも属さず、ハンドラーによって変更されたオブジェクトの値は未定義になります。
ロックフリー 29.4/1,2
ATOMIC_..._LOCK_FREE マクロは、対応するアトミック型のロックフリー プロパティを示し、符号付きバリアントと符号なしバリアントがグループ化されます。プロパティは、atomic テンプレートの対応する (部分的な) 特殊化にも適用されます。値 0 は、型が決してロックフリーでないことを示します。値 1 は、型がロックフリーである場合があることを示します。値 2 は、型が常にロックフリーであることを示します。
関数atomic_is_lock_free (29.6) は、オブジェクトがロックフリーかどうかを示します。任意のプログラム実行において、ロックフリー クエリの結果は、同じ型のすべてのポインタに対して一貫性があります。
于 2013-04-11T12:44:54.883 に答える