Namespaces
Variants

std::counting_semaphore<LeastMaxValue>:: try_acquire_until

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic 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, falls er größer als 0 ist; andernfalls blockiert, bis er größer als 0 ist und der interne Zähler erfolgreich dekrementiert werden kann, oder der abs_time Zeitpunkt überschritten wurde.

Das Programm ist fehlerhaft, wenn std:: chrono :: is_clock_v < Clock > gleich false ist.

Inhaltsverzeichnis

Vorbedingungen

Clock erfüllt die Clock Anforderungen.

Parameter

abs_time - die früheste Zeit, bis zu der die Funktion warten muss, um fehlzuschlagen

Rückgabewert

true wenn es den internen Zähler dekrementiert hat, andernfalls false .

Ausnahmen

Kann std::system_error oder eine timeout-bezogene Ausnahme werfen.

Hinweise

In der Praxis kann die Funktion länger als abs_time benötigen, um fehlzuschlagen.

Siehe auch

erhöht den internen Zähler und gibt blockierte Akquisiteure frei
(öffentliche Elementfunktion)
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)