Namespaces
Variants

std::unique_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++11)

Versucht, den zugehörigen Mutex zu sperren (d.h. die Eigentümerschaft zu übernehmen). 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 . Ruft effektiv mutex ( ) - > try_lock_for ( timeout_duration ) auf.

Diese Funktion kann länger blockieren als timeout_duration aufgrund von Planungs- oder Ressourcenkonfliktverzögerungen.

Der Standard empfiehlt, dass eine stetige Uhr zur Messung der Dauer verwendet wird. Falls eine Implementierung stattdessen eine Systemuhr verwendet, kann die Wartezeit auch anfällig für Uhranpassungen sein.

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

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_for ( timeout_duration ) geworfen werden.

Beispiel

Siehe auch

sperrt (d.h. übernimmt den Besitz) des zugehörigen Mutex
(öffentliche Elementfunktion)
versucht, den zugehörigen Mutex ohne Blockierung zu sperren (d.h. den Besitz zu übernehmen)
(öffentliche Elementfunktion)
versucht, den zugehörigen Mutex für die angegebene Dauer zu sperren
(öffentliche Elementfunktion von std::shared_lock<Mutex> )
versucht, den zugehörigen TimedLockable Mutex zu sperren (d.h. den Besitz zu übernehmen), gibt zurück, wenn der Mutex bis zum Erreichen des angegebenen Zeitpunkts nicht verfügbar war
(öffentliche Elementfunktion)
entsperrt (d.h. gibt den Besitz frei) des zugehörigen Mutex
(öffentliche Elementfunktion)