タイトルごとに。シグナルハンドラでstd::atomic<>
を使用できますか?sig_atomic_t
は他のコンパイラ機能を提供していますか?sig_atomic_tとstd :: atomic <>は入れ替え可能です
8
A
答えて
10
n3376 1.9/6
抽象機械の処理は、信号の受信により中断され、 はどちら
あるオブジェクトの値 - タイプ揮発性STDの:: sig_atomic_tまたは
- ロックフリーの原子オブジェクト(29.4)
がシグナルハンドラの実行中に指定されておらず、 にないオブジェクトの値は、ハンドラによって変更されたこれらの2つのカテゴリが未定義になります。
ロックフリー29.4/1,2-
ATOMIC _..._ LOCK_FREEマクロは、一緒にグループ化 符号付きおよび符号なしの変異体を用いて、対応する原子の種類のロックフリー性を示します。このプロパティは、アトミックテンプレートの特殊化に対応する(部分的な) にも適用されます。 0の値は、型がロックフリーでないことを示します。 の値1は、型がロックフリーの場合があることを示します。値2は、型が常にロックフリーであることを示します。
関数atomic_is_lock_free(29.6)は、オブジェクトがロックフリーであるかどうかを示します。任意の与えられたプログラム の実行では、ロックフリークエリの結果は、同じ型のすべてのポインタに対して一貫していなければなりません。
関連する問題
- 1. std :: atomicの++アトミックです<int>
- 2. pre-increment対std :: atomicのポストインクリメント<int>
- 3. スレッドセーフstd :: atomic <vector<int>>を作成できますか?
- 4. ビット単位のANDとstd :: atomic <bool>
- 5. std :: wstring_convert <std :: codecvt_utf8 <wchar_t>>を入れる場所は?
- 6. InterlockedCompareExchange64とstd :: atomic compare_exchange
- 7. std :: vector <std :: pair <std :: string、bool >>を文字列で並べ替える?
- 8. Antlrエラー:実行可能な代替入力 '<EOF>'
- 9. なぜsizeof(std :: mutex)== 40(gcc、clang、icc)ですか? <code>sizeof(std::atomic<bool>)==1</code>ではなく
- 10. のstd ::機能とstd :: <code>std::packaged_task</code>が<code>void operator()(ArgTypes... args)</code>をオーバーロードしていますので、私は、<code>std::function<void()></code>の<code>std::vector</code>に<code>std::packaged_task</code>を移動しようとしていますpackaged_task変換
- 11. std :: listの並べ替え<myclass*> myclass :: operator [](int i)
- 12. X86 'cmpps'命令とLLVM IR 'fcmp'命令は入れ替え可能ですか?
- 13. std :: map <X、std :: vector <Y>>を繰り返し、ベクトルを並べ替える
- 14. std :: atomic memory barrierの理解
- 15. タイプ「観察可能<{}>」「は観察可能<Token>」を入力する割り当てられない
- 16. std :: atomic <int> - ロードして原子的に0にリセットしますか?
- 17. ベクトル<pair <aStruct *、int>>は不可能ですか?
- 18. タイプ '観察可能<void>' は '観察可能<JSON>'
- 19. std :: atomicを使用した正確性<bool>とstd :: mutexの組み合わせ
- 20. C++アトミック変数とは何ですか?私はそれが特別な機械語命令(すなわちロックアドオン)のいくつかの並べ替えを生成し、それが結果として、あなたがする必要はありませんで収集したものを他の質問を読んで<a href="http://en.cppreference.com/w/cpp/atomic/atomic" rel="nofollow noreferrer">http://en.cppreference.com/w/cpp/atomic/atomic</a></p> <p>:
- 21. "平坦化" std :: set <std::string>の保存と比較は可能ですか?
- 22. 関数パラメータとしてstd :: vectorを入れ替えよう
- 23. std :: shared_ptr <std :: vector <double>>
- 24. gd ++のstd :: atomicサポート4.4.3
- 25. <はstd :: reference_wrapper <T>>はstd ::ベクトルします<T>
- 26. std :: atomic with custom class(C++ 11)
- 27. 私は2つの機能</p> <pre><code>void foo() { std::cout << 1 << std::endl; } void bar() { std::cout << 2 << std::endl; } </code></pre> <p>をお持ちの場合は2個の関数のC++
- 28. 入れ替え可能な前後方向の範囲指定イテレータの作成
- 29. タイプ '観察可能<{}>'「は観察可能<Item[]>を型に代入できません。Rxjs
- 30. std :: is_signedの相違点<T>とstd :: numeric_limits <T> :: is_signed?
完全性を期すためには、 'std :: atomic x;' * x.is_lock_free() 'がtrueの場合は変数*を使用できることを意味します。 –
ありがとうございました... – James