std::shared_lock<Mutex>::try_lock_until
| template< class Clock, class Duration > bool try_lock_until( const std::chrono::time_point<Clock,Duration>& timeout_time ); |
(seit C++14) | |
Versucht, das zugehörige Mutex im Shared-Modus zu sperren. Blockiert, bis die angegebene timeout_time erreicht ist oder die Sperre erworben wurde, je nachdem, was zuerst eintritt. Bei erfolgreichem Erwerb der Sperre wird true zurückgegeben, andernfalls false. Kann länger blockieren als bis timeout_time erreicht ist.
Ruft effektiv mutex()->try_lock_shared_until(timeout_time) auf.
std::system_error wird ausgelöst, wenn kein zugehöriger Mutex vorhanden ist oder wenn der Mutex bereits gesperrt ist.
Clock muss die Clock-Anforderungen erfüllen. Das Verhalten ist undefiniert, wenn Mutex die SharedTimedLockable-Anforderungen nicht erfüllt. Das Programm ist schlecht formuliert, wenn std::chrono::is_clock_v<Clock> false ist.(seit C++20)
Inhalt |
[bearbeiten] Parameter
| timeout_time | - | maximaler Zeitpunkt, bis zu dem blockiert werden soll |
[bearbeiten] Rückgabewert
true, wenn der Besitz des Mutex erfolgreich erworben wurde, andernfalls false.
[bearbeiten] Ausnahmen
- Alle Ausnahmen, die von mutex()->try_lock_shared_for(timeout_time) ausgelöst werden.
- Wenn kein zugeordneter Mutex vorhanden ist, std::system_error mit einem Fehlercode von std::errc::operation_not_permitted.
- Wenn der Mutex bereits gesperrt ist, std::system_error mit dem Fehlercode std::errc::resource_deadlock_would_occur.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| sperrt den zugehörigen Mutex (public member function) | |
| versucht, den zugehörigen Mutex zu sperren (public member function) | |
| versucht, den zugehörigen Mutex für die angegebene Dauer zu sperren (public member function) | |
| entsperrt den zugehörigen Mutex (public member function) | |
| versucht, den zugehörigen TimedLockable Mutex zu sperren (d.h. den Besitz zu übernehmen) und kehrt zurück, wenn der Mutex bis zum Erreichen des angegebenen Zeitpunkts nicht verfügbar war (public member function of std::unique_lock<Mutex>) |