std::shared_timed_mutex:: lock_shared
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Exclusive locking | ||||
| Shared locking | ||||
|
shared_timed_mutex::lock_shared
|
||||
|
void
lock_shared
(
)
;
|
(seit C++14) | |
Erwirbt gemeinsamen Besitz des Mutex. Wenn ein anderer Thread den Mutex im exklusiven Besitz hält, wird ein Aufruf von
lock_shared
die Ausführung blockieren, bis gemeinsamer Besitz erworben werden kann.
Wenn
lock_shared
von einem Thread aufgerufen wird, der den
mutex
bereits in einem beliebigen Modus (exklusiv oder shared) besitzt, ist das Verhalten undefiniert.
Wenn bereits mehr als die implementierungsdefinierte maximale Anzahl von gemeinsam genutzten Besitzern den Mutex im gemeinsam genutzten Modus gesperrt hat,
lock_shared
blockiert die Ausführung, bis die Anzahl der gemeinsam genutzten Besitzer reduziert wird. Die maximale Anzahl von Besitzern ist garantiert mindestens 10000.
Eine vorherige unlock() -Operation auf demselben Mutex synchronizes-with (wie definiert in std::memory_order ) dieser Operation.
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
(keine)
Exceptions
Wirft
std::system_error
bei Auftreten von Fehlern, einschließlich Fehlern des zugrundeliegenden Betriebssystems, die verhindern würden, dass
lock
seine Spezifikationen erfüllen kann. Das Mutex wird im Falle einer ausgelösten Ausnahme nicht gesperrt.
Hinweise
lock_shared()
wird normalerweise nicht direkt aufgerufen:
std::shared_lock
wird verwendet, um gemeinsames Sperren zu verwalten.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
sperrt das Mutex, blockiert falls das Mutex nicht verfügbar ist
(öffentliche Elementfunktion) |
|
|
versucht das Mutex für gemeinsamen Besitz zu sperren, kehrt zurück falls das Mutex nicht verfügbar ist
(öffentliche Elementfunktion) |
|
|
entsperrt das Mutex (gemeinsamer Besitz)
(öffentliche Elementfunktion) |