Espacios de nombres
Variantes

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

De cppreference.com
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
Exclusión mutua
(C++11)
Gestión genérica de bloqueo
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
(C++11)
Recuperación segura
(C++26)
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
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)

Toma posesión de los mutex m dados.

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...). El comportamiento no está definido si uno de los MutexTypes no es un mutex recursivo y el hilo actual ya posee el argumento correspondiente en m....
2) Toma posesión de los mutex m... sin intentar bloquear ninguno de ellos. El comportamiento no está definido a menos que el hilo actual posea todos los mutex en m....
3) El constructor de copia está eliminado.

El comportamiento no está definido si m se destruye antes que lo sea el objeto scoped_lock.

Parámetros

m - Los mutex de los cuales tomar posesión.

Excepciones

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

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
P0739R0 C++17 El parámetro adopt_lock_t estaba al final, lo que impedía la deducción de argumentos de plantillas de clase. Se movió al principio.