Namensräume
Varianten
Aktionen

std::counting_semaphore<LeastMaxValue>::release

Von cppreference.com
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
Freie Funktionen für atomare Flags
 
 
void release( std::ptrdiff_t update = 1 );
(seit C++20)

Inkrementiert atomar den internen Zähler um den Wert von update. Jeder Thread, der darauf wartet, dass der Zähler größer als 0 wird (z. B. weil er in acquire blockiert ist), wird anschließend entsperrt.

Diese Operation geschieht stark vor den Aufrufen von try_acquire, die das Ergebnis der Effekte beobachten.

Inhalt

[bearbeiten] Vorbedingungen

Sowohl update >= 0 als auch update <= max() - counter sind true, wobei counter der Wert des internen Zählers ist.

[bearbeiten] Parameter

update - der Betrag, um den der interne Zähler erhöht werden soll

[bearbeiten] Ausnahmen

Kann std::system_error auslösen.

[bearbeiten] Siehe auch

dekrementiert den internen Zähler oder blockiert, bis dies möglich ist
(public member function) [bearbeiten]
versucht, den internen Zähler zu dekrementieren, ohne zu blockieren
(public member function) [bearbeiten]
versucht, den internen Zähler zu dekrementieren, blockiert für eine Dauer von bis zu time
(public member function) [bearbeiten]
versucht, den internen Zähler zu dekrementieren, blockiert bis zu einem Zeitpunkt
(public member function) [bearbeiten]