std::counting_semaphore<LeastMaxValue>::try_acquire_for
Von cppreference.com
< cpp | thread | counting semaphore
| template< class Rep, class Period > bool try_acquire_for( const std::chrono::duration<Rep, Period>& rel_time ); |
(seit C++20) | |
Versucht, den internen Zähler atomar um 1 zu dekrementieren, wenn er größer als 0 ist; andernfalls blockiert es, bis er größer als 0 ist und der interne Zähler erfolgreich dekrementiert werden kann, oder die rel_time-Dauer überschritten wurde.
Inhalt |
[bearbeiten] Vorbedingungen
(keine)
[bearbeiten] Parameter
| rel_time | - | die *minimale* Dauer, die die Funktion warten muss, bis sie fehlschlägt |
[bearbeiten] Rückgabewert
true, wenn der interne Zähler dekrementiert wurde, andernfalls false.
[bearbeiten] Ausnahmen
Kann std::system_error oder eine timeout-bezogene Ausnahme auslösen.
[bearbeiten] Hinweise
In der Praxis kann die Funktion länger als rel_time zum Fehlschlagen benötigen.
[bearbeiten] Siehe auch
| inkrementiert den internen Zähler und gibt blockierende Erwerber frei (public member function) | |
| dekrementiert den internen Zähler oder blockiert, bis dies möglich ist (public member function) | |
| versucht, den internen Zähler zu dekrementieren, ohne zu blockieren (public member function) | |
| versucht, den internen Zähler zu dekrementieren, blockiert bis zu einem Zeitpunkt (public member function) |