Namensräume
Varianten
Aktionen

std::shared_lock<Mutex>::try_lock_for

Von cppreference.com
< cpp‎ | thread‎ | shared lock
 
 
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_lock_for( const std::chrono::duration<Rep,Period>& timeout_duration );
(seit C++14)

Versucht, den zugeordneten 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 Erwerb der Sperre wird true zurückgegeben, andernfalls wird false zurückgegeben. Ruft effektiv mutex()->try_lock_shared_for(timeout_duration) auf.

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

Der Standard empfiehlt die Verwendung einer stabilen Uhr zur Messung der Dauer. Wenn eine Implementierung stattdessen eine Systemuhr verwendet, kann die Wartezeit auch empfindlich auf Uhrenanpassungen reagieren.

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

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

Inhalt

[edit] Parameter

timeout_duration - maximale Dauer für das Blockieren

[edit] Rückgabewert

true, wenn der Besitz des Mutex erfolgreich erworben wurde, andernfalls false.

[edit] Ausnahmen

  • Alle Ausnahmen, die von mutex()->try_lock_shared_for(timeout_duration) ausgelöst werden.

[edit] Beispiel

[edit] Siehe auch

versucht, den zugehörigen TimedLockable Mutex zu sperren (d.h. den Besitz zu übernehmen) und kehrt zurück, wenn der Mutex für die angegebene Zeitspanne nicht verfügbar war
(public member function of std::unique_lock<Mutex>) [edit]
sperrt den zugehörigen Mutex
(public member function) [edit]
versucht, den zugehörigen Mutex zu sperren
(public member function) [edit]
versucht, den zugehörigen Mutex bis zu einem bestimmten Zeitpunkt zu sperren
(public member function) [edit]
entsperrt den zugehörigen Mutex
(public member function) [edit]