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>