Udostępnij za pośrednictwem


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