<mutex>
funkcje i zmienne
adopt_lock
Reprezentuje obiekt, który można przekazać do konstruktorów dla lock_guard i unique_lock , aby wskazać, że obiekt mutex, który jest również przekazywany do konstruktora, jest zablokowany.
const adopt_lock_t adopt_lock;
call_once
Udostępnia mechanizm wywoływania określonego obiektu wywołującego dokładnie raz podczas wykonywania.
template <class Callable, class... Args>
void call_once(once_flag& Flag,
Callable F&&, Args&&... A);
Parametry
Flaga
Obiekt once_flag, który gwarantuje, że obiekt wywołujący jest wywoływany tylko raz.
F
Obiekt, który można wywołać.
A
Lista argumentów.
Uwagi
Jeśli flaga jest nieprawidłowa, funkcja zgłasza system_error z kodem błędu invalid_argument
. W przeciwnym razie funkcja szablonu używa argumentu Flag , aby upewnić się, że wywołuje dokładnie raz, niezależnie od liczby wywołań F(A...)
funkcji szablonu. Jeśli F(A...)
zostanie zakończone przez zgłoszenie wyjątku, wywołanie nie powiodło się.
defer_lock
Reprezentuje obiekt, który można przekazać do konstruktora dla unique_lock. Oznacza to, że konstruktor nie powinien blokować obiektu mutex, który jest również przekazywany do niego.
const defer_lock_t defer_lock;
lock
Próbuje zablokować wszystkie argumenty bez zakleszczenia.
template <class L1, class L2, class... L3>
void lock(L1&, L2&, L3&...);
Uwagi
Argumenty funkcji szablonu muszą być typami mutex, z tą różnicą, że wywołania mogą zgłaszać try_lock
wyjątki.
Funkcja blokuje wszystkie argumenty bez zakleszczenia przez wywołania do lock
, try_lock
i unlock
. Jeśli wywołanie metody lock
lub try_lock
zgłoszenie wyjątku, funkcja wywołuje unlock
dowolne obiekty mutex, które zostały pomyślnie zablokowane przed ponownym wywołaniem wyjątku.
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
Reprezentuje obiekt, który można przekazać do konstruktora dla unique_lock , aby wskazać, że konstruktor powinien spróbować odblokować mutex
obiekt, który jest również przekazywany do niego bez blokowania.
const try_to_lock_t try_to_lock;