Namespaces
Variants

std::shared_lock<Mutex>:: try_lock_for

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 Rep, class Period >
bool try_lock_for ( const std:: chrono :: duration < Rep,Period > & timeout_duration ) ;
(seit C++14)

Versucht, den zugehörigen Mutex im Shared-Modus zu sperren. Blockiert, bis die angegebene timeout_duration abgelaufen ist oder die Sperre erworben wurde, je nachdem, was zuerst eintritt. Bei erfolgreichem Sperrenrwerb wird true zurückgegeben, andernfalls false . Effektiv wird mutex ( ) - > try_lock_shared_for ( timeout_duration ) aufgerufen.

Diese Funktion kann länger blockieren als timeout_duration aufgrund von Scheduling- oder Ressourcenkonflikt-Verzögerungen.

Der Standard empfiehlt, dass ein stabiler Taktgeber zur Messung der Dauer verwendet wird. Falls eine Implementierung stattdessen einen Systemtaktgeber verwendet, kann die Wartezeit auch anfällig für Taktjustierungen sein.

std::system_error wird ausgelöst, wenn kein assoziierter Mutex vorhanden ist oder wenn der Mutex bereits gesperrt ist.

Das Verhalten ist undefiniert, falls Mutex nicht die SharedTimedLockable Anforderungen erfüllt.

Inhaltsverzeichnis

Parameter

timeout_duration - maximale Dauer für die Blockierung

Rückgabewert

true falls der Besitz des Mutex erfolgreich erlangt wurde, false andernfalls.

Ausnahmen

  • Alle Ausnahmen, die von mutex ( ) - > try_lock_shared_for ( timeout_duration ) geworfen werden.

Beispiel

Siehe auch

versucht, den zugehörigen TimedLockable Mutex zu sperren (d.h. übernimmt den Besitz), gibt zurück, wenn der Mutex für die angegebene Zeitdauer nicht verfügbar war
(öffentliche Mitgliedsfunktion von std::unique_lock<Mutex> )
sperrt den zugehörigen Mutex
(öffentliche Mitgliedsfunktion)
versucht, den zugehörigen Mutex zu sperren
(öffentliche Mitgliedsfunktion)
versucht, den zugehörigen Mutex bis zu einem bestimmten Zeitpunkt zu sperren
(öffentliche Mitgliedsfunktion)
entsperrt den zugehörigen Mutex
(öffentliche Mitgliedsfunktion)