Namensräume
Varianten
Aktionen

std::experimental::barrier::arrive_and_wait

Von cppreference.com
 
 
 
 
 
void arrive_and_wait();
(Concurrency TS)

Blockiert und trifft am Synchronisationspunkt des Barriers ein.

Das Verhalten ist undefiniert, wenn der aufrufende Thread nicht zur Menge der teilnehmenden Threads dieses Barriers gehört.

Aufrufe von arrive_and_wait synchronisieren mit dem Beginn der Abschlussphase des Barriers. Der Abschluss der Abschlussphase synchronisiert mit der Rückkehr aus dem Aufruf.

Aufrufe von arrive_and_drop und arrive_and_wait führen niemals zu Datenrennen mit sich selbst oder untereinander.

[bearbeiten] Hinweise

Es ist sicher, dass ein Thread entweder arrive_and_wait() oder arrive_and_drop() unmittelbar nach der Rückkehr aus diesem Aufruf aufrufen kann. Es ist nicht notwendig sicherzustellen, dass alle blockierten Threads arrive_and_wait() verlassen haben, bevor ein Thread ihn erneut aufruft.

Die Menge der teilnehmenden Threads für einen barrier, der für num_threads Threads konstruiert wurde, sind die ersten num_threads, die seinen Synchronisationspunkt erreichen. Diese Menge ändert sich von Zyklus zu Zyklus nicht, mit Ausnahme von Threads, die aufgrund von arrive_and_drop()-Aufrufen aus der Menge entfernt wurden.

[bearbeiten] Ausnahmen

Wirft nichts.

[bearbeiten] Siehe auch

kommt am Synchronisationspunkt an und entfernt den aktuellen Thread aus der Menge der teilnehmenden Threads
(öffentliche Memberfunktion) [bearbeiten]