Namespaces
Variants

std::barrier<CompletionFunction>:: arrive_and_drop

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void arrive_and_drop ( ) ;
(начиная с C++20)

Уменьшает начальное ожидаемое количество для всех последующих фаз на единицу, а затем уменьшает ожидаемое количество для текущей фазы на единицу.

Эта функция выполняется атомарно. Вызов этой функции strongly happens-before начала шага завершения фазы для текущей фазы.

Поведение не определено, если ожидаемое количество для текущей фазы равно нулю.

Содержание

Параметры

(нет)

Возвращаемое значение

(нет)

Исключения

Выбрасывает std::system_error с кодом ошибки, допустимым для типов мьютексов, при возникновении ошибки.

Примечания

Эта функция может вызвать начало шага завершения для текущей фазы.

Если текущее ожидаемое количество равно нулю перед вызовом этой функции, начальное ожидаемое количество для всех последующих фаз также равно нулю, что означает, что barrier не может быть повторно использован.

Пример