Namensräume
Varianten
Aktionen

std::counting_semaphore<LeastMaxValue>::try_acquire_for

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
 
 
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) [bearbeiten]
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 bis zu einem Zeitpunkt
(public member function) [bearbeiten]