Namespaces
Variants

std::experimental::flex_barrier:: arrive_and_wait

From cppreference.net
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)