std::experimental::flex_barrier:: arrive_and_wait
|
void
arrive_and_wait
(
)
;
|
(TS de concurrencia) | |
Bloquea y llega al punto de sincronización de la
flex_barrier
.
El comportamiento es indefinido si el hilo que realiza la llamada no está en el conjunto de hilos participantes de esta
flex_barrier
.
Las llamadas a
arrive_and_wait
se sincronizan con el inicio de la fase de finalización de la
flex_barrier
. La finalización de la fase de finalización se sincroniza con el retorno de la llamada.
Las llamadas a
arrive_and_drop
y
arrive_and_wait
nunca introducen carreras de datos consigo mismas o entre sí.
Notas
Es seguro que un hilo llame a
arrive_and_wait()
o
arrive_and_drop()
inmediatamente después de retornar de esta llamada (siempre que el objeto función para la fase de finalización no haya retornado cero). No es necesario asegurar que todos los hilos bloqueados hayan salido de
arrive_and_wait()
antes de que un hilo lo llame nuevamente.
La fase de finalización ejecuta el objeto de función especificado cuando se construyó la
flex_barrier
. Si retorna -1, el conjunto de hilos participantes permanece sin cambios; de lo contrario, el conjunto de hilos participantes es un nuevo conjunto con el tamaño igual al valor de retorno
N
, y consiste en los siguientes
N
hilos en llegar al punto de sincronización. Si
N
==
0
, la
flex_barrier
solo puede ser destruida.
El conjunto inicial de hilos participantes para una
flex_barrier
construida para
num_threads
hilos son los primeros
num_threads
en llegar a su punto de sincronización.
Excepciones
No lanza nada.
Véase también
|
llega al punto de sincronización y elimina el hilo actual del conjunto de hilos participantes
(función miembro pública) |