Namespaces
Variants

std::experimental::flex_barrier:: arrive_and_drop

From cppreference.net
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 で呼び出した後は、完了フェーズで呼び出される関数オブジェクトが正の値を返す場合でも、そのバリアのデストラクタを除くすべてのメンバ関数を呼び出すことはできません。

関連項目

同期ポイントに到着してブロックする
(公開メンバ関数)