std::experimental::flex_barrier:: arrive_and_drop
|
void
arrive_and_drop
(
)
;
|
(concurrency TS) | |
flex_barrier
の同期ポイントに到達し、現在のスレッドを参加スレッドのセットから削除します。この関数が完了フェーズが終了するまでブロックするかどうかは未規定です。関数がブロックする場合、呼び出し元スレッドが完了フェーズを実行するために選択される可能性があります。
呼び出しスレッドがこの
flex_barrier
の参加スレッドセットに含まれていない場合、動作は未定義です。
arrive_and_drop
への呼び出しは、
flex_barrier
の完了フェーズの開始と同期します。呼び出しがブロックする場合、完了フェーズの終了は呼び出しからの戻りと同期します。
arrive_and_drop
および
arrive_and_wait
への呼び出しは、互いや自身との間でデータ競合を引き起こすことはありません。
例外
例外を送出しません。
注記
全ての参加スレッドが
arrive_and_drop
を呼び出した場合でも、完了フェーズは実行されます。
スレッドが
arrive_and_drop
を
flex_barrier
で呼び出した後は、完了フェーズで呼び出される関数オブジェクトが正の値を返す場合でも、そのバリアのデストラクタを除くすべてのメンバ関数を呼び出すことはできません。
関連項目
|
同期ポイントに到着してブロックする
(公開メンバ関数) |