std::experimental::barrier::arrive_and_drop
From cppreference.com
< cpp | experimental | barrier
| void arrive_and_drop(); |
(concurrency TS) | |
バリアの同期ポイントに到達し、現在のスレッドを参加スレッドのセットから削除します。この関数が完了フェーズの終了までブロックするかどうかは未指定です。
呼び出し元のスレッドがこのバリアの参加スレッドのセットに含まれていない場合、動作は未定義です。
arrive_and_drop への呼び出しは、バリアの完了フェーズの開始と同期します。呼び出しがブロックする場合、完了フェーズの完了は呼び出しからの戻りと同期します。
arrive_and_drop および arrive_and_wait への呼び出しは、それ自体または互いにデータ競合を導入することはありません。
[編集] 例外
何もスローしません。
[編集] 注意
すべての参加スレッドが arrive_and_drop() を呼び出した場合、バリアは破棄することしかできません。
スレッドがバリアに対して arrive_and_drop() を呼び出した後、そのスレッドはそのバリアの参加スレッドのセットのメンバーではなくなり、したがって同じバリアに対して arrive_and_drop() または arrive_and_wait() を呼び出すことはできなくなります。
[編集] 関連項目
| 同期点に到達し、ブロックします。 (public member function) |