◐ Shell
clean mode source ↗

std::shared_lock - cppreference.com

De cppreference.com

template< class Mutex > class shared_lock;

(desde C++14)

La clase shared_lock es un envoltorio de propiedad de mutex compartido de propósito general que permite el bloqueo diferido, el bloqueo temporizado y la transferencia de la propiedad del bloqueo. Bloquear un shared_lock bloquea el mutex compartido asociado en modalidad compartida (para bloquearlo en modalidad exclusiva, se puede usar std::unique_lock).

La clase shared_lock se puede mover, pero no se puede copiar; cumple con los requerimientos de MoveConstructible y MoveAssignable pero no de CopyConstructible o CopyAssignable.

Para esperar en un mutex compartido en modalidad de propiedad compartida, se puede usar std::condition_variable_any (std::condition_variable requiere std::unique_lock y así solo puede esperar en modalidad de propiedad única).

Parámetros de plantilla

Mutex - El tipo de mutex compartido a bloquear. El tipo debe cumplir con los requerimientos de SharedMutex.

Tipos miembro

Tipo Definición
mutex_type Mutex

Funciones miembro

Construye un objeto shared_lock, opcionalmente bloquea el mutex suplementado
(función miembro pública) [editar]
Desbloquea el mutex asociado
(función miembro pública) [editar]
Desbloquea el mutex si lo posee, y toma posesión de otro
(función miembro pública) [editar]
Bloqueo compartido
Bloquea el mutex asociado
(función miembro pública) [editar]
Intenta bloquear el mutex asociado
(función miembro pública) [editar]
Intenta bloquear el mutex asociado por la duración especificada
(función miembro pública) [editar]
Intenta bloquear el mutex asociado hasta un punto en el tiempo especificado
(función miembro pública) [editar]
Desbloquea el mutex asociado
(función miembro pública) [editar]
Modificadores
Intercambia los datos miembro con otro objeto shared_lock
(función miembro pública) [editar]
Desasocia el mutex sin desbloquear
(función miembro pública) [editar]
Observadores
Devuelve un puntero al mutex asociado
(función miembro pública) [editar]
Comprueba si el cerrojo posee su mutex asociado
(función miembro pública) [editar]
Comprueba si el cerrojo posee su mutex asociado
(función miembro pública) [editar]

Funciones no miembro

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2981 C++17 Se proporcionó guía de deducción redundante de scoped_lock<MutexTypes...>. Se eliminó.