std::shared_mutex::lock_shared
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
Esta sección está incompleta Razón: sin ejemplo |
[editar] 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; regresa si el mutex no está disponible (función miembro pública) | |
Desbloquea el mutex (propiedad compartida) (función miembro pública) |