Namensräume
Varianten
Aktionen

std::counting_semaphore<LeastMaxValue>::try_acquire_until

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 Clock, class Duration >
bool try_acquire_until( const std::chrono::time_point<Clock, Duration>& abs_time );
(seit C++20)

Versucht, den internen Zähler atomar um 1 zu dekrementieren, wenn dieser größer als 0 ist; andernfalls blockiert, bis er größer als 0 ist und der interne Zähler erfolgreich dekrementiert werden kann, oder bis der Zeitpunkt abs_time überschritten wurde.

Das Programm ist schlecht geformt, wenn std::chrono::is_clock_v<Clock> false ist.

Inhalt

[bearbeiten] Vorbedingungen

Clock erfüllt die Anforderungen an eine Clock.

[bearbeiten] Parameter

abs_time - der früheste Zeitpunkt, bis zu dem die Funktion warten muss, um fehlschlagen zu können

[bearbeiten] Rückgabewert

true, wenn der interne Zähler dekrementiert wurde, andernfalls false.

[bearbeiten] Ausnahmen

Kann std::system_error oder eine mit Timeout zusammenhängende Ausnahme auslösen.

[bearbeiten] Hinweise

In der Praxis kann die Funktion länger als abs_time dauern, um fehlschlagen zu können.

[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 für eine Dauer von bis zu time
(public member function) [bearbeiten]