# std::experimental::barrier::arrive_and_wait

From cppreference.com
< cpp‎ | experimental‎ | barrier

void arrive_and_wait(); |  | (concurrency TS)

Blocks and arrive at the barrier's synchronization point.

The behavior is undefined if the calling thread is not in the set of participating threads of this barrier.

Calls to `arrive_and_wait` synchronizes with the start of the completion phase of the barrier. The completion of the completion phase synchronizes with the return from the call.

Calls to `arrive_and_drop` and `arrive_and_wait` never introduce data races with themselves or each other.

### Notes

It is safe for a thread to call either `arrive_and_wait()` or `arrive_and_drop()` immediately on return from this call. It's not necessary to ensure that all blocked threads have exited `arrive_and_wait()` before a thread calls it again.

The set of participating threads for a `barrier` constructed for `num_threads` threads is the first `num_threads` to arrive at its synchronization point. This set does not change from cycle to cycle, except for threads removed from the set due to `arrive_and_drop()` calls.

### Exceptions

Throws nothing.

### See also

arrive_and_drop | arrive at the synchronization point and remove the current thread from the set of participating threads (public member function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental/barrier/arrive_and_wait&oldid=98808"