std::counting_semaphore<LeastMaxValue>:: release
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Operations | ||||
|
counting_semaphore::release
|
||||
| Constants | ||||
|
void
release
(
std::
ptrdiff_t
update
=
1
)
;
|
(seit C++20) | |
Erhöht den internen Zähler atomar um den Wert von update . Alle Threads, die darauf warten, dass der Zähler größer als 0 wird, beispielsweise weil sie in acquire blockiert sind, werden anschließend freigegeben.
Dieser Vorgang findet stark vor Aufrufen von try_acquire statt, die das Ergebnis der Effekte beobachten.
Inhaltsverzeichnis |
Vorbedingungen
Sowohl
update
>=
0
als auch
update
<=
max
(
)
-
counter
sind
true
, wobei
counter
den Wert des internen Zählers darstellt.
Parameter
| update | - | der Betrag, um den der interne Zähler erhöht wird |
Ausnahmen
Kann std::system_error werfen.
Siehe auch
|
dekrementiert den internen Zähler oder blockiert, bis dies möglich ist
(öffentliche Elementfunktion) |
|
|
versucht, den internen Zähler ohne Blockierung zu dekrementieren
(öffentliche Elementfunktion) |
|
|
versucht, den internen Zähler zu dekrementieren, blockiert für maximal eine Zeitdauer
(öffentliche Elementfunktion) |
|
|
versucht, den internen Zähler zu dekrementieren, blockiert bis zu einem Zeitpunkt
(öffentliche Elementfunktion) |