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 ( ) ;
(desde C++14)

Adquiere la propiedad compartida del mutex. Si otro hilo mantiene el mutex en propiedad exclusiva, una llamada a lock_shared bloqueará la ejecución hasta que se pueda adquirir la propiedad compartida.

Si lock_shared es llamado por un hilo que ya posee el mutex en cualquier modo (exclusivo o compartido), el comportamiento es indefinido.

Si más del máximo número definido por la implementación de propietarios compartidos ya ha bloqueado el mutex en modo compartido, lock_shared bloquea la ejecución hasta que el número de propietarios compartidos se reduzca. Se garantiza que el número máximo de propietarios es al menos 10000.

La operación anterior unlock() en el mismo mutex sincroniza-con (como se define en std::memory_order ) esta operación.

Contenidos

Parámetros

(ninguno)

Valor de retorno

(ninguno)

Excepciones

Lanza std::system_error cuando ocurren errores, incluyendo errores del sistema operativo subyacente que impedirían que lock cumpla con sus especificaciones. El mutex no queda bloqueado en caso de que se lance cualquier excepción.

Notas

lock_shared() normalmente no se llama directamente: std::shared_lock se utiliza para gestionar el bloqueo compartido.

Ejemplo

Véase también

bloquea el mutex, se bloquea si el mutex no está disponible
(función miembro pública)
intenta bloquear el mutex para propiedad compartida, retorna si el mutex no está disponible
(función miembro pública)
desbloquea el mutex (propiedad compartida)
(función miembro pública)