std::barrier<CompletionFunction>::arrive

From cppreference.com
< cpp‎ | thread‎ | barrier
 
 
Concurrency support library
Threads
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Free functions for atomic operations
Free functions for atomic flags
Memory ordering
Mutual exclusion
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
 
 
[[nodiscard]] arrival_token arrive( std::ptrdiff_t n = 1 );
(since C++20)

Constructs an arrival_token object associated with the phase synchronization point for the current phase. Then, decrements the expected count by n.

This function executes atomically. The call to this function strongly happens-before the start of the phase completion step for the current phase.

The behavior is undefined if n is less than or equal to 0 or greater than the expected count for the current barrier phase.

Parameters

n - the value by which the expected count is decreased

Return value

The constructed arrival_token object.

Exceptions

Throws std::system_error with an error code allowed for mutex types on error.

Notes

This function can cause the completion step for the current phase to start.

Example

See also

blocks at the phase synchronization point until its phase completion step is run
(public member function)