std::shared_timed_mutex:: try_lock_shared_for
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Exclusive locking | ||||
| Shared locking | ||||
|
shared_timed_mutex::try_lock_shared_for
|
||||
|
template
<
class
Rep,
class
Period
>
bool try_lock_shared_for ( const std:: chrono :: duration < Rep,Period > & timeout_duration ) ; |
(seit C++14) | |
Versucht, den Mutex im Shared-Modus zu sperren. Blockiert bis die angegebene timeout_duration abgelaufen ist oder die Shared-Sperre erworben wurde, je nachdem, was zuerst eintritt. Bei erfolgreichem Sperrenrwerb wird true zurückgegeben, andernfalls false .
Wenn timeout_duration kleiner oder gleich timeout_duration. zero ( ) ist, verhält sich die Funktion wie try_lock_shared() .
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.
Wie bei try_lock_shared() ist es dieser Funktion erlaubt, fälschlicherweise zu scheitern und false zurückzugeben, selbst wenn das Mutex zu keinem Zeitpunkt während der timeout_duration durch einen anderen Thread gesperrt war.
Ein vorheriger unlock() -Vorgang auf demselben Mutex synchronisiert-mit (wie definiert in std::memory_order ) diesem Vorgang, falls er true zurückgibt.
Wenn
try_lock_shared_for
von einem Thread aufgerufen wird, der den
mutex
bereits in einem beliebigen Modus (shared oder exclusive) besitzt, ist das Verhalten undefiniert.
Inhaltsverzeichnis |
Parameter
| timeout_duration | - | maximale Dauer für die Blockierung |
Rückgabewert
true wenn die Sperre erfolgreich erworben wurde, andernfalls false .
Ausnahmen
Jede Ausnahme, die von clock, time_point oder duration während der Ausführung geworfen wird (von der Standardbibliothek bereitgestellte Uhren, Zeitpunkte und Dauern werfen niemals).
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
versucht, den Mutex für gemeinsamen Besitz zu sperren, gibt zurück, wenn der Mutex nicht verfügbar ist
(öffentliche Mitgliedsfunktion) |
|
|
versucht, den Mutex für gemeinsamen Besitz zu sperren, gibt zurück, wenn der Mutex
bis zum Erreichen des angegebenen Zeitpunkts nicht verfügbar war (öffentliche Mitgliedsfunktion) |
|
|
versucht, den Mutex zu sperren, gibt zurück, wenn der Mutex für die
angegebene Timeout-Dauer nicht verfügbar war (öffentliche Mitgliedsfunktion) |