std::experimental::barrier:: arrive_and_wait
|
void
arrive_and_wait
(
)
;
|
(TS concurrence) | |
Les blocs arrivent au point de synchronisation de la barrière.
Le comportement n'est pas défini si le thread appelant ne fait pas partie de l'ensemble des threads participants de cette barrière.
Les appels à
arrive_and_wait
se synchronisent avec le début de la phase de complétion de la barrière. La fin 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 aux 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. Il n'est pas nécessaire de s'assurer que tous les threads bloqués ont quitté
arrive_and_wait()
avant qu'un thread ne l'appelle à nouveau.
L'ensemble des threads participants pour une
barrier
construite pour
num_threads
threads correspond aux premiers
num_threads
threads à atteindre son point de synchronisation. Cet ensemble ne change pas d'un cycle à l'autre, sauf pour les threads retirés de l'ensemble en raison d'appels à
arrive_and_drop()
.
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) |