Namespaces
Variants

std::barrier<CompletionFunction>:: arrive_and_wait

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void arrive_and_wait ( ) ;
(depuis C++20)

Décrémente atomiquement le compteur attendu de 1, puis bloque au point de synchronisation pour la phase actuelle jusqu'à ce que l'étape de finalisation de la phase actuelle soit exécutée. Équivalent à wait ( arrive ( ) ) ; .

Le comportement est indéfini si le compte attendu pour la phase actuelle est zéro.

Table des matières

Paramètres

(aucun)

Valeur de retour

(aucun)

Exceptions

Lance std::system_error avec un code d'erreur autorisé pour les types de mutex en cas d'erreur.

Notes

Si le compteur attendu actuel est décrémenté à zéro lors de l'appel à cette fonction, l'étape de complétion de phase est exécutée et cette fonction ne se bloque pas.

Si le compteur attendu actuel est zéro avant d'appeler cette fonction, le compteur attendu initial pour toutes les phases suivantes est également zéro, ce qui signifie que la barrier ne peut pas être réutilisée.

Exemple