Funções e variáveis <mutex>
adopt_lock
Representa um objeto que pode ser passado para construtores para lock_guard e unique_lock para indicar que o objeto mutex que também está sendo passado para o construtor está bloqueado.
const adopt_lock_t adopt_lock;
call_once
Fornece um mecanismo para chamar um objeto especificado que pode ser chamado apenas uma vez durante a execução.
template <class Callable, class... Args>
void call_once(once_flag& Flag,
Callable F&&, Args&&... A);
Parâmetros
Sinalizador
Um objeto once_flag que garante que o objeto que pode ser chamado seja chamado apenas uma vez.
F
Um objeto que pode ser chamado.
A
Uma lista de argumentos.
Comentários
Se Flag não for válido, a função lancará um system_error com o código de erro de invalid_argument
. Caso contrário, a função de modelo usará seu argumento Flag para garantir que chame F(A...)
com êxito exatamente uma vez, independentemente de quantas vezes o modelo de função for chamado. Se F(A...)
sai ao lançar uma exceção, a chamada não foi bem-sucedida.
defer_lock
Representa um objeto que pode ser passado para o construtor para unique_lock. Isso indica que o construtor não deve bloquear o objeto mutex que também está sendo passado para ele.
const defer_lock_t defer_lock;
lock
Tenta bloquear todos os argumentos sem deadlock.
template <class L1, class L2, class... L3>
void lock(L1&, L2&, L3&...);
Comentários
Os argumentos para a função de modelo devem ser tipos mutex, exceto as chamadas para try_lock
que podem lançar exceções.
A função bloqueia todos os argumentos sem deadlock por chamadas para lock
, try_lock
e unlock
. Se uma chamada para lock
ou try_lock
lançar uma exceção, a função chamará unlock
em qualquer objeto mutex que foi bloqueado com êxito antes do relançamento da exceção.
troca
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
Representa um objeto que pode ser passado para construtores para unique_lock para indicar que o construtor deve tentar desbloquear o mutex
que também está sendo passado para ele sem bloqueio.
const try_to_lock_t try_to_lock;