std::shared_timed_mutex::lock_shared
| void lock_shared(); |
(seit C++14) | |
Erlangt gemeinsamen Besitz des Mutex. Wenn ein anderer Thread den Mutex im exklusiven Besitz hält, blockiert ein Aufruf von lock_shared die Ausführung, bis gemeinsamer Besitz erlangt werden kann.
Wenn lock_shared von einem Thread aufgerufen wird, der den mutex bereits in irgendeinem Modus (exklusiv oder gemeinsam) besitzt, ist das Verhalten undefiniert.
Wenn mehr als die implementierungsdefinierte maximale Anzahl von gemeinsamen Besitzern den Mutex bereits im gemeinsamen Modus gesperrt hat, blockiert lock_shared die Ausführung, bis die Anzahl der gemeinsamen Besitzer reduziert ist. Die maximale Anzahl von Besitzern ist garantiert mindestens 10000.
Eine vorherige unlock()-Operation für denselben Mutex synchronisiert sich mit (wie in std::memory_order definiert) dieser Operation.
Inhalt |
[edit] Parameter
(keine)
[edit] Rückgabewert
(keine)
[edit] Ausnahmen
Wirft std::system_error bei Fehlern, einschließlich Fehlern des zugrunde liegenden Betriebssystems, die verhindern, dass lock seine Spezifikationen erfüllt. Die Mutex ist im Falle einer geworfenen Ausnahme nicht gesperrt.
[edit] Hinweise
lock_shared() wird normalerweise nicht direkt aufgerufen: std::shared_lock wird zur Verwaltung der gemeinsamen Sperrung verwendet.
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Siehe auch
| sperrt den Mutex, blockiert, wenn der Mutex nicht verfügbar ist (public member function) | |
| versucht, den Mutex für gemeinsamen Besitz zu sperren, kehrt zurück, wenn der Mutex nicht verfügbar ist (public member function) | |
| entsperrt den Mutex (gemeinsamer Besitz) (public member function) |