recursive_timed_mutex (Clase)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Representa un superó el tiempo de tipo de exclusión mutua. Objetos de este tipo se utilizan para aplicar la exclusión mutua con tiempo limitado de bloqueo dentro de un programa. A diferencia de los objetos de tipo timed_mutex, el efecto de la llamada a métodos de bloqueos para recursive_timed_mutex objetos está bien definida.

class recursive_timed_mutex;

Constructores públicos

NombreDescripción
Constructor de recursive_timed_mutex::recursive_timed_mutexConstruye un recursive_timed_mutex objeto que no está bloqueado.
recursive_timed_mutex:: ~ recursive_timed_mutex (destructor)Libera todos los recursos utilizados por la recursive_timed_mutex objeto.

Métodos públicos

NombreDescripción
recursive_timed_mutex:: lock (método)Bloquea el subproceso que realiza la llamada hasta que este obtiene la propiedad mutex.
recursive_timed_mutex:: try_lock (método)Intenta obtener la propiedad de mutex sin bloquearlo.
recursive_timed_mutex:: try_lock_for (método)Intenta obtener la propiedad de la mutex para un intervalo de tiempo especificado.
recursive_timed_mutex:: try_lock_until (método)Intenta obtener la propiedad de la mutex hasta una hora especificada.
recursive_timed_mutex:: Unlock (método)Libera la propiedad de mutex.

Encabezado: mutex

Espacio de nombres: std

Bloquea el subproceso que realiza la llamada hasta que este obtiene la propiedad mutex.

void lock();

Comentarios

Si el subproceso de llamada ya posee el mutex, el método vuelve inmediatamente, y el bloqueo anterior permanece en vigor.

Construye un recursive_timed_mutex objeto que no está bloqueado.

recursive_timed_mutex();

Libera todos los recursos utilizados por la recursive_timed_mutex objeto.

~recursive_timed_mutex();

Comentarios

Si el objeto está bloqueado cuando se ejecuta el destructor, el comportamiento es indefinido.

Intenta obtener la propiedad de mutex sin bloquearlo.

bool try_lock() noexcept;

Valor devuelto

trueSi el método obtiene correctamente la propiedad de la mutex o si el subproceso de llamada ya posee el mutex; en caso contrario, false.

Comentarios

Si el subproceso de llamada ya posee el mutex, la función devuelve inmediatamente true, y el bloqueo anterior permanece en vigor.

Intenta obtener la propiedad de mutex sin bloquearlo.

template <class Rep, class Period>
bool try_lock_for(const chrono::duration<Rep, Period>& Rel_time);

Parámetros

Rel_time
Un chrono:: Duration objeto que especifica la cantidad máxima de tiempo que el método intenta obtener la propiedad de la mutex.

Valor devuelto

trueSi el método obtiene correctamente la propiedad de la mutex o si el subproceso de llamada ya posee el mutex; en caso contrario, false.

Comentarios

Si el subproceso de llamada ya posee el mutex, el método vuelve inmediatamente true, y el bloqueo anterior permanece en vigor.

Intenta obtener la propiedad de mutex sin bloquearlo.

template <class Clock, class Duration>
bool try_lock_for(const chrono::time_point<Clock, Duration>& Abs_time);

bool try_lock_until(const xtime* Abs_time);

Parámetros

Abs_time
Punto en el tiempo que especifica el umbral después del cual el método ya no intenta obtener la propiedad de mutex.

Valor devuelto

trueSi el método obtiene correctamente la propiedad de la mutex o si el subproceso de llamada ya posee el mutex; en caso contrario, false.

Comentarios

Si el subproceso de llamada ya posee el mutex, el método vuelve inmediatamente true, y el bloqueo anterior permanece en vigor.

Libera la propiedad de mutex.

void unlock();

Comentarios

Este método libera la propiedad de la mutex sólo después de que se llama tantas veces como bloqueo, try_lock, try_lock_for, y try_lock_until se ha llamado correctamente en el recursive_timed_mutex objeto.

Si el subproceso que realiza la llamada no posee mutex, el comportamiento es indefinido.

Referencia de archivos de encabezado
<>>

Mostrar: