Namespaces
Variants

std::scoped_lock<MutexTypes...>:: scoped_lock

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
std::scoped_lock
Member functions
scoped_lock::scoped_lock
explicit scoped_lock ( MutexTypes & ... m ) ;
(1) (seit C++17)
scoped_lock ( std:: adopt_lock_t , MutexTypes & ... m ) ;
(2) (seit C++17)
scoped_lock ( const scoped_lock & ) = delete ;
(3) (seit C++17)

Übernimmt den Besitz der gegebenen Mutexe m .

1) Wenn sizeof... ( MutexTypes ) == 0 , tut nichts. Andernfalls, wenn sizeof... ( MutexTypes ) == 1 , ruft effektiv m. lock ( ) auf. Andernfalls ruft effektiv std:: lock ( m... ) auf.
2) Übernimmt den Besitz der Mutexe m... ohne zu versuchen, einen davon zu sperren. Das Verhalten ist undefiniert, es sei denn, der aktuelle Thread hält eine nicht-geteilte Sperre (d.h. eine durch lock , try_lock , try_lock_for , oder try_lock_until erworbene Sperre) auf jedem Objekt in m... .
3) Copy-Konstruktor ist gelöscht.

Das Verhalten ist undefiniert, wenn m zerstört wird, bevor das scoped_lock -Objekt zerstört wird.

Parameter

m - Mutexes, deren Eigentum erworben werden soll

Ausnahmen

1) Wirft alle Ausnahmen, die von m. lock ( ) geworfen werden.
2) Wirft nichts.

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
P0739R0 C++17 adopt_lock_t Parameter war zuletzt, behinderte Klassentemplate-Argumentableitung an erste Position verschoben