Partager via


recursive_timed_mutex, classe

Représente un type mutex limité dans le temps. Les objets de ce type permettent d’appliquer une exclusion mutuelle (mutex) en utilisant un blocage limité dans le temps dans un programme. Contrairement aux objets de type timed_mutex, l’effet des appels à des méthodes de verrouillage sur les objets recursive_timed_mutex est bien défini.

Syntaxe

class recursive_timed_mutex;

Membres

Constructeurs publics

Nom Description
recursive_timed_mutex Construit un objet recursive_timed_mutex qui n’est pas verrouillé.
~recursive_timed_mutex, destructeur Libère les ressources utilisées par l’objet recursive_timed_mutex.

Méthodes publiques

Nom Description
lock Bloque le thread appelant jusqu'à ce que le thread obtienne la propriété du mutex.
try_lock Tente d'obtenir la propriété de la référence mutex sans se bloquer.
try_lock_for Tente d’obtenir la propriété du mutex pour un intervalle de temps spécifié.
try_lock_until Tente d’obtenir la propriété du mutex jusqu’à une heure spécifiée.
unlock Libère la propriété du mutex.

Spécifications

Header :<mutex>

Espace de noms : std

lock

Bloque le thread appelant jusqu'à ce que le thread obtienne la propriété du mutex.

void lock();

Notes

Si le thread appelant possède déjà le mutex, la méthode est retournée immédiatement, et le verrou précédent reste en vigueur.

recursive_timed_mutex, constructeur

Construit un objet recursive_timed_mutex qui n’est pas verrouillé.

recursive_timed_mutex();

~recursive_timed_mutex, destructeur

Libère les ressources utilisées par l’objet recursive_timed_mutex.

~recursive_timed_mutex();

Notes

Si l'objet est verrouillé lorsque le destructeur s'exécute, le comportement est indéfini.

try_lock

Tente d'obtenir la propriété de la référence mutex sans se bloquer.

bool try_lock() noexcept;

Valeur de retour

true si la méthode a réussi à obtenir la propriété du mutex ou si le thread appelant possède déjà le mutex. Sinon, false.

Notes

Si le thread appelant possède déjà le mutex, la fonction retourne immédiatement true, et le verrou précédent reste en vigueur.

try_lock_for

Tente d'obtenir la propriété de la référence mutex sans se bloquer.

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

Paramètres

Rel_time
Objet chrono::duration qui spécifie la durée maximale pendant laquelle la méthode essaie d’obtenir la propriété du mutex.

Valeur de retour

true si la méthode réussit à obtenir la propriété du mutex ou si le thread appelant possède déjà le mutex. Sinon, false.

Notes

Si le thread appelant possède déjà le mutex, la méthode retourne immédiatement true, et le verrou précédent reste en vigueur.

try_lock_until

Tente d'obtenir la propriété de la référence mutex sans se bloquer.

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);

Paramètres

Abs_time
Point dans le temps qui spécifie le seuil au-delà duquel la méthode ne tente plus d'obtenir la propriété du mutex.

Valeur de retour

true si la méthode réussit à obtenir la propriété du mutex ou si le thread appelant possède déjà le mutex. Sinon, false.

Notes

Si le thread appelant possède déjà le mutex, la méthode retourne immédiatement true, et le verrou précédent reste en vigueur.

déverrouiller

Libère la propriété du mutex.

void unlock();

Notes

Cette méthode libère la propriété du mutex uniquement si elle a été appelée autant de fois que lock, try_lock, try_lock_for et try_lock_until ont été appelés avec succès sur l’objet recursive_timed_mutex.

Si le thread appelant ne possède pas mutex, le comportement est indéfini.

Voir aussi

Informations de référence sur les fichiers d’en-tête
<mutex>