std::recursive_timed_mutex::try_lock
| bool try_lock() noexcept; |
(seit C++11) | |
Versucht, den Mutex zu sperren. Gibt sofort zurück. Bei erfolgreichem Erwerb der Sperre wird true zurückgegeben, andernfalls wird false zurückgegeben.
Diese Funktion kann fehlschlagen (spurious failure) und false zurückgeben, auch wenn der Mutex derzeit von keinem anderen Thread gesperrt ist.
Ein Thread kann try_lock wiederholt auf einem rekursiven Mutex aufrufen. Erfolgreiche Aufrufe von try_lock erhöhen den Besitzzähler: Der Mutex wird erst freigegeben, nachdem der Thread eine entsprechende Anzahl von Aufrufen von unlock vorgenommen hat.
Die maximale Anzahl von Besitzebenen ist nicht spezifiziert. Ein Aufruf von try_lock gibt false zurück, wenn diese Anzahl überschritten wird.
Eine vorhergehende unlock()-Operation auf demselben Mutex *synchronisiert sich mit* (wie in std::memory_order definiert) dieser Operation, wenn sie true zurückgibt. Beachten Sie, dass ein vorhergehender lock()-Aufruf sich nicht mit dieser Operation synchronisiert, wenn er false zurückgibt.
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
true, wenn die Sperre erfolgreich erworben wurde, andernfalls false.
[bearbeiten] Ausnahmen
Wirft nichts.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| sperrt den Mutex, blockiert, wenn der Mutex nicht verfügbar ist (public member function) | |
| versucht, den Mutex zu sperren, kehrt zurück, wenn der Mutex für die angegebene Zeitdauer nicht verfügbar war (public member function) | |
| versucht, den Mutex zu sperren, kehrt zurück, wenn der Mutex bis zum Erreichen des angegebenen Zeitpunktpunkts nicht verfügbar (public member function) | |
| entsperrt den Mutex (public member function) | |
| C-Dokumentation für mtx_trylock
| |