Namespaces
Variants

std::experimental::barrier:: arrive_and_wait

From cppreference.net
void arrive_and_wait ( ) ;
(並行処理 TS)

ブロックがバリアの同期ポイントに到達します。

このバリアの参加スレッドのセット内に呼び出しスレッドが存在しない場合、動作は未定義です。

arrive_and_wait への呼び出しは、バリアの完了フェーズの開始と同期します。完了フェーズの終了は、呼び出しからの戻りと同期します。

arrive_and_drop および arrive_and_wait への呼び出しは、 これらの関数同士や相互間にデータ競合を引き起こすことはありません。

注記

スレッドがこの呼び出しから戻った直後に arrive_and_wait() または arrive_and_drop() を呼び出すことは安全です。スレッドが再度 arrive_and_wait() を呼び出す前に、すべてのブロックされたスレッドが arrive_and_wait() から抜け出していることを保証する必要はありません。

barrier num_threads 個のスレッド用に構築された場合、参加スレッドの集合は、その同期ポイントに最初に到着した num_threads 個のスレッドです。この集合は、 arrive_and_drop() 呼び出しによって集合から削除されたスレッドを除き、サイクルごとに変化しません。

例外

例外を送出しません。

関連項目

同期ポイントに到着し、現在のスレッドを参加スレッドのセットから削除する
(公開メンバー関数)