Partager via


<mutex> fonctions et variables

adopt_lock

Représente un objet pouvant être passé aux constructeurs pour lock_guard et unique_lock afin d’indiquer que l’objet mutex qui est également passé au constructeur est verrouillé.

const adopt_lock_t adopt_lock;

call_once

Fournit un mécanisme permettant d'appeler un objet spécifique pouvant être appelé une seule fois durant l'exécution.

template <class Callable, class... Args>
void call_once(once_flag& Flag,
    Callable F&&, Args&&... A);

Paramètres

Indicateur
Objet once_flag qui permet de s’assurer que l’objet pouvant être appelé n’est appelé qu’une seule fois.

F
Objet pouvant être appelé.

A
Liste d’arguments.

Notes

Si l’indicateur n’est pas valide, la fonction lève un system_error dont le code invalid_argumentd’erreur est . Sinon, la fonction de modèle utilise son argument Indicateur pour s’assurer qu’elle appelle F(A...) correctement une seule fois, quelle que soit le nombre de fois que la fonction de modèle est appelée. Si F(A...) se termine en levant une exception, l’appel n’a pas réussi.

defer_lock

Représente un objet qui peut être passé au constructeur pour unique_lock. Cela indique que le constructeur ne doit pas verrouiller l’objet mutex qui lui est également passé.

const defer_lock_t defer_lock;

lock

Tente de verrouiller tous les arguments sans interblocage.

template <class L1, class L2, class... L3>
void lock(L1&, L2&, L3&...);

Notes

Les arguments de la fonction de modèle doivent être des types mutex, sauf que les appels à try_lock peuvent lever des exceptions.

La fonction verrouille tous ses arguments sans blocage par des appels à lock, try_lock et unlock. Si un appel à lock ou try_lock lève une exception, la fonction appelle unlock sur l’un des objets mutex qui ont été correctement verrouillés avant de relever l’exception.

swap

template <class Mutex>
void swap(unique_lock<Mutex>& x, unique_lock<Mutex>& y) noexcept;

try_lock

template <class L1, class L2, class... L3> int try_lock(L1&, L2&, L3&...);

try_to_lock

Représente un objet pouvant être passé au constructeur pour unique_lock, afin d’indiquer que le constructeur doit essayer de déverrouiller le mutex qui lui est également passé sans blocage.

const try_to_lock_t try_to_lock;