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) (desde C++17)
scoped_lock ( std:: adopt_lock_t , MutexTypes & ... m ) ;
(2) (desde C++17)
scoped_lock ( const scoped_lock & ) = delete ;
(3) (desde C++17)

Adquiere la propiedad de los mutexes dados m .

1) Si sizeof... ( MutexTypes ) == 0 , no hace nada. De lo contrario, si sizeof... ( MutexTypes ) == 1 , efectivamente llama a m. lock ( ) . De lo contrario, efectivamente llama a std:: lock ( m... ) .
2) Adquiere la propiedad de los mutex m... sin intentar bloquear ninguno de ellos. El comportamiento es indefinido a menos que el hilo actual mantenga un bloqueo no compartido (es decir, un bloqueo adquirido mediante lock , try_lock , try_lock_for , o try_lock_until ) en cada objeto en m... .
3) El constructor de copia está eliminado.

El comportamiento es indefinido si m es destruido antes de que el objeto scoped_lock lo sea.

Parámetros

m - mutexes para adquirir la propiedad

Excepciones

1) Lanza cualquier excepción lanzada por m. lock ( ) .
2) No lanza nada.

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Se aplica a Comportamiento publicado Comportamiento correcto
P0739R0 C++17 adopt_lock_t el parámetro estaba al final, impidiendo la deducción de argumentos de plantilla de clase movido al principio