Espacios de nombres
Variantes
Acciones

Archivo de encabezado de la biblioteca estándar <shared_mutex>

De cppreference.com
< cpp‎ | header
 
 
Archivos de encabezado de la biblioteca estándar
 

Este archivo de encabezado es parte de la biblioteca de soporte de hilos.

Contenido

Clases

Proporciona un servicio de exclusión mutua compartida.
(clase)[editar]
Proporciona un servicio de exclusión mutua compartida e implementa bloqueo con un tiempo de espera.
(clase)[editar]
Implementa un envoltorio de propiedad de un mutex movible.
(plantilla de clase)[editar]

Funciones

Especialización de std::swap para shared_lock
(plantilla de función)[editar]

[editar]Sinopsis

namespace std {class shared_mutex;class shared_timed_mutex;template<class Mutex>class shared_lock;template<class Mutex>void swap(shared_lock<Mutex>& x, shared_lock<Mutex>& y)noexcept;}

[editar]Clase std::shared_mutex

namespace std {class shared_mutex {public: shared_mutex(); ~shared_mutex();   shared_mutex(const shared_mutex&)= delete; shared_mutex& operator=(const shared_mutex&)= delete;   // propiedad exclusivavoid lock();// bloqueabool try_lock();void unlock();   // propiedad compartidavoid lock_shared();// bloqueabool try_lock_shared();void unlock_shared();   using native_handle_type =/* definido por la implementación */; native_handle_type native_handle();};}

[editar]Clase std::shared_timed_mutex

namespace std {class shared_timed_mutex {public: shared_timed_mutex(); ~shared_timed_mutex();   shared_timed_mutex(const shared_timed_mutex&)= delete; shared_timed_mutex& operator=(const shared_timed_mutex&)= delete;   // propiedad exclusivavoid lock();// bloqueabool try_lock();template<class Rep, class Period>bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);template<class Clock, class Duration>bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);void unlock();   // propiedad compartidavoid lock_shared();// bloqueabool try_lock_shared();template<class Rep, class Period>bool try_lock_shared_for(const chrono::duration<Rep, Period>& rel_time);template<class Clock, class Duration>bool try_lock_shared_until(const chrono::time_point<Clock, Duration>& abs_time);void unlock_shared();};}

[editar]Clase template std::shared_lock

namespace std {template<class Mutex>class shared_lock {public:using mutex_type = Mutex;   // construcción/copia/destrucción shared_lock()noexcept;explicit shared_lock(mutex_type& m);// bloquea shared_lock(mutex_type& m, defer_lock_t)noexcept; shared_lock(mutex_type& m, try_to_lock_t); shared_lock(mutex_type& m, adopt_lock_t);template<class Clock, class Duration> shared_lock(mutex_type& m, const chrono::time_point<Clock, Duration>& abs_time);template<class Rep, class Period> shared_lock(mutex_type& m, const chrono::duration<Rep, Period>& rel_time); ~shared_lock();   shared_lock(const shared_lock&)= delete; shared_lock& operator=(const shared_lock&)= delete;   shared_lock(shared_lock&& u)noexcept; shared_lock& operator=(shared_lock&& u)noexcept;   // bloqueovoid lock();// bloqueabool try_lock();template<class Rep, class Period>bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);template<class Clock, class Duration>bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);void unlock();   // modificadoresvoid swap(shared_lock& u)noexcept; mutex_type* release()noexcept;   // observadoresbool owns_lock()constnoexcept;explicit operator bool()constnoexcept; mutex_type* mutex()constnoexcept;   private: mutex_type* pm;// solo exposiciónbool owns;// solo exposición};   template<class Mutex>void swap(shared_lock<Mutex>& x, shared_lock<Mutex>& y)noexcept;}
close