std::experimental::barrier::arrive_and_drop
| void arrive_and_drop(); |
(Concurrency TS) | |
Erreicht den Synchronisationspunkt des Barriers und entfernt den aktuellen Thread aus der Menge der teilnehmenden Threads. Es ist nicht spezifiziert, ob diese Funktion blockiert, bis die Abschlussphase beendet ist.
Das Verhalten ist undefiniert, wenn der aufrufende Thread nicht Teil der Menge der teilnehmenden Threads dieses Barriers ist.
Aufrufe von arrive_and_drop synchronisieren mit dem Beginn der Abschlussphase des Barriers. Wenn der Aufruf blockiert, synchronisiert die Beendigung der Abschlussphase mit der Rückgabe des Aufrufs.
Aufrufe von arrive_and_drop und arrive_and_wait führen niemals zu Datenrennen mit sich selbst oder untereinander.
[bearbeiten] Ausnahmen
Wirft nichts.
[bearbeiten] Hinweise
Wenn jeder teilnehmende Thread arrive_and_drop() aufruft, kann der Barrier nur noch zerstört werden.
Nachdem ein Thread arrive_and_drop() auf einem Barrier aufgerufen hat, ist er kein Mitglied mehr seiner Menge teilnehmender Threads und kann daher weder arrive_and_drop() noch arrive_and_wait() für denselben Barrier aufrufen.
[bearbeiten] Siehe auch
| kommt am Synchronisationspunkt an und blockiert (öffentliche Memberfunktion) |