Namespaces
Variants

std::barrier<CompletionFunction>:: arrive_and_wait

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_wait ( ) ;
(desde C++20)

Decrementa atómicamente el contador esperado en 1, luego se bloquea en el punto de sincronización para la fase actual hasta que se ejecute el paso de finalización de fase de la fase actual. Equivalente a wait ( arrive ( ) ) ; .

El comportamiento es indefinido si el recuento esperado para la fase actual es cero.

Contenidos

Parámetros

(ninguno)

Valor de retorno

(ninguno)

Excepciones

Lanza std::system_error con un código de error permitido para tipos de mutex en caso de error.

Notas

Si el recuento esperado actual se decrementa a cero en la llamada a esta función, se ejecuta la fase de completado y esta función no se bloquea.

Si el recuento esperado actual es cero antes de llamar a esta función, el recuento esperado inicial para todas las fases posteriores también es cero, lo que significa que la barrier no se puede reutilizar.

Ejemplo