std::scoped_lock<MutexTypes...>:: scoped_lock
From cppreference.net
<
cpp
|
thread
|
scoped lock
C++
Concurrency support library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 |