<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_argument
d’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;