std::experimental::flex_barrier:: arrive_and_wait
|
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) |