std::shared_timed_mutex::lock_shared
void lock_shared(); |
(desde C++14) | |
Adquiere la propiedad compartida del mutex. Si otro hilo tiene 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 llamada 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 compartido, 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.
La operación unlock() anterior en el mismo mutex se sincroniza-con (como se define en std::memory_order) esta operación.
Parámetros
(Ninguno)
Valor de retorno
(Ninguno)
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 se bloquea en el caso de que se produzca alguna excepción.
Notas
lock_shared() generalmente no se llama directamente: std::shared_lock se usa para gestionar el bloqueo compartido.
Ejemplo
| Esta sección está incompleta Razón: sin 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; regresa si el mutex no está disponible (función miembro pública) | |
| Desbloquea el mutex (propiedad compartida) (función miembro pública) |