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