Namespaces
Variants

std::experimental::flex_barrier:: arrive_and_wait

From cppreference.net
void arrive_and_wait ( ) ;
(TS concurrence)

Blocs et arrive au point de synchronisation de la flex_barrier .

Le comportement n'est pas défini si le thread appelant ne fait pas partie de l'ensemble des threads participants de cette flex_barrier .

Les appels à arrive_and_wait se synchronisent avec le début de la phase de complétion du flex_barrier . L'achèvement de la phase de complétion se synchronise avec le retour de l'appel.

Les appels à arrive_and_drop et arrive_and_wait n'introduisent jamais de courses de données entre eux ou avec eux-mêmes.

Notes

Il est sûr pour un thread d'appeler soit arrive_and_wait() soit arrive_and_drop() immédiatement après le retour de cet appel (à condition que l'objet fonction pour la phase de complétion n'ait pas retourné zéro). Il n'est pas nécessaire de s'assurer que tous les threads bloqués sont sortis de arrive_and_wait() avant qu'un thread ne l'appelle à nouveau.

La phase d'achèvement exécute l'objet fonction spécifié lors de la construction de la flex_barrier . Si elle retourne -1, l'ensemble des threads participants reste inchangé ; sinon, l'ensemble des threads participants est un nouvel ensemble dont la taille est égale à la valeur de retour N , et est constitué des N prochains threads à atteindre le point de synchronisation. Si N == 0 , la flex_barrier ne peut être que détruite.

L'ensemble initial de threads participants pour une flex_barrier construite pour num_threads threads correspond aux premiers num_threads threads arrivant à son point de synchronisation.

Exceptions

Ne lance rien.

Voir aussi

arrive au point de synchronisation et retire le thread actuel de l'ensemble des threads participants
(fonction membre publique)