Namespaces
Variants

std::shared_timed_mutex:: lock_shared

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
void lock_shared ( ) ;
(depuis C++14)

Acquiert la propriété partagée du mutex. Si un autre thread détient le mutex en propriété exclusive, un appel à lock_shared bloquera l'exécution jusqu'à ce que la propriété partagée puisse être acquise.

Si lock_shared est appelé par un thread qui possède déjà le mutex dans n'importe quel mode (exclusif ou partagé), le comportement est indéfini.

Si plus que le nombre maximum défini par l'implémentation de propriétaires partagés ont déjà verrouillé le mutex en mode partagé, lock_shared bloque l'exécution jusqu'à ce que le nombre de propriétaires partagés soit réduit. Le nombre maximum de propriétaires est garanti d'être au moins 10000.

L'opération unlock() antérieure sur le même mutex synchronise-avec (tel que défini dans std::memory_order ) cette opération.

Table des matières

Paramètres

(aucun)

Valeur de retour

(aucun)

Exceptions

Lance std::system_error en cas d'erreurs, y compris les erreurs du système d'exploitation sous-jacent qui empêcheraient lock de satisfaire ses spécifications. Le mutex n'est pas verrouillé en cas de levée d'une exception.

Notes

lock_shared() n'est généralement pas appelé directement : std::shared_lock est utilisé pour gérer le verrouillage partagé.

Exemple

Voir aussi

verrouille le mutex, bloque si le mutex n'est pas disponible
(fonction membre publique)
tente de verrouiller le mutex en propriété partagée, retourne si le mutex n'est pas disponible
(fonction membre publique)
déverrouille le mutex (propriété partagée)
(fonction membre publique)