Compartilhar via


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;