Espacios de nombres
Variantes
Acciones

std::shared_mutex::lock_shared

De cppreference.com
< cpp‎ | thread‎ | shared mutex
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
Exclusión mutua
(C++11)
Gestión genérica de bloqueo
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
(C++11)
Recuperación segura
(C++26)
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
void lock_shared();
(desde C++17)

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

Si lock_shared se llama por un hilo que ya posee el mutex en cualquier modalidad (exclusiva o compartida), el comportamiento no está definido.

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

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

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

(Ninguno)

[editar] Excepciones

Lanza std::system_error cuando ocurren errores, incluidos errores del sistema operativo subyacente que evitarían que lock cumpla con sus especificaciones. El mutex no está bloqueado en el caso de que se lance alguna excepción.

[editar] Notas

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

[editar] Ejemplo

[editar] Véase también

Bloquea el mutex; se bloquea si el mutex no está disponible
(función miembro pública) [editar]
Intenta bloquear el mutex para propiedad compartida; regresa si el mutex no está disponible
(función miembro pública) [editar]
Desbloquea el mutex (propiedad compartida)
(función miembro pública) [editar]