Freigeben über


<mutex> Funktionen und Variablen

adopt_lock

Stellt ein Objekt dar, das an die Konstruktoren für lock_guard und unique_lock übergeben werden kann, um anzugeben, dass das ebenfalls an den Konstruktor übergebene Mutex-Objekt gesperrt ist.

const adopt_lock_t adopt_lock;

call_once

Stellt einen Mechanismus zum Aufrufen eines angegebenen aufrufbaren Objekts genau einmal während der Ausführung bereit.

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

Parameter

Kennzeichnen
Ein once_flag-Objekt, das gewährleistet, dass das aufrufbare Objekt nur einmal aufgerufen wird.

F
Ein aufrufbares Objekt.

A
Eine Argumentliste.

Hinweise

Wenn Flag ungültig ist, löst die Funktion eine system_error aus, die einen Fehlercode aufweist invalid_argument. Andernfalls verwendet die Vorlagenfunktion das Flag-Argument , um sicherzustellen, dass sie genau einmal aufgerufen F(A...) wird, unabhängig davon, wie oft die Vorlagenfunktion aufgerufen wird. Wenn F(A...) durch Auslösen einer Ausnahme beendet wird, war der Aufruf nicht erfolgreich.

defer_lock

Stellt ein Objekt dar, das an den Konstruktor für unique_lock übergeben werden kann. Dies gibt an, dass der Konstruktor das ebenfalls an ihn übergebene Mutex-Objekt nicht sperren darf.

const defer_lock_t defer_lock;

lock

Versucht, alle Argumente ohne Deadlock zu sperren.

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

Hinweise

Die Argumente für die Vorlagenfunktion müssen Mutex-Typen sein, sofern nicht Aufrufe von try_lock Ausnahmen auslösen könnten.

Die Funktion sperrt alle Argumente ohne Deadlock durch Aufrufe von lock, try_lock und unlock. Wenn ein Aufruf von lock oder try_lock eine Ausnahme auslöst, ruft die Funktion auf allen Mutex-Objekten unlock auf, die vor dem erneuten Auslösen der Ausnahme erfolgreich gesperrt wurden.

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

Stellt ein Objekt dar, das an den Konstruktor für unique_lock übergeben werden kann, um anzugeben, dass der Konstruktor versuchen muss, das ebenfalls an ihn ohne Blockierung übergebene mutex zu entsperren.

const try_to_lock_t try_to_lock;