Espacios de nombres
Variantes

std::barrier<CompletionFunction>::arrive_and_wait

De cppreference.com
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
Exclusión mutua
(C++11)
Gestión genérica de bloqueo
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
(C++11)
Recuperación segura
(C++26)
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
void arrive_and_wait();
(desde C++20)

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

El comportamiento no está definido si el conteo esperado para la fase actual es cero.

Parámetros

(Ninguno)

Valor de retorno

(Ninguno)

Excepciones

Lanza std::system_error con un código de error permitido para tipos mutex cuando suceden errores.

Notas

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

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

Ejemplo