Compartilhar via


Classe recursive_mutex

Representa um tipo mutex. Em contraste com mutex, o comportamento de chamadas para métodos de bloqueio para objetos que já estão bloqueados é bem definido.

Sintaxe

class recursive_mutex;

Membros

Construtores públicos

Nome Descrição
recursive_mutex Constrói um objeto recursive_mutex.
Destruidor ~recursive_mutex Libera todos os recursos usados pelo objeto recursive_mutex.

Métodos públicos

Nome Descrição
lock Bloqueia o thread de chamada até que ele tenha obtido a propriedade do mutex.
try_lock Tenta obter a propriedade do mutex sem bloquear.
unlock Libera a propriedade do mutex.

Requisitos

Cabeçalho:<mutex>

Namespace: std

lock

Bloqueia o thread de chamada até que ele tenha obtido a propriedade do mutex.

void lock();

Comentários

Se o thread de chamada já possuir o mutex, o método retornará imediatamente e o bloqueio anterior permanece em vigor.

recursive_mutex

Constrói um objeto recursive_mutex que não está bloqueado.

recursive_mutex();

~ recursive_mutex

Libera todos os recursos usados pelo objeto .

~recursive_mutex();

Comentários

Se o objeto estiver bloqueado quando o destruidor for executado, o comportamento será indefinido.

try_lock

Tenta obter a propriedade do mutex sem o bloqueio.

bool try_lock() noexcept;

Valor de retorno

true se o método obtiver a propriedade do mutex com êxito ou se o thread de chamada já possui o mutex**; otherwise, **false.

Comentários

Se o thread de chamada já possui o mutex, a função retorna true imediatamente e o bloqueio anterior permanece em vigor.

desbloquear

Libera a propriedade do mutex.

void unlock();

Comentários

Esse método libera a propriedade do mutex somente depois que ele é chamado tantas vezes quanto lock e try_lock foram chamados com êxito no objeto recursive_mutex.

Se o thread de chamada não for o proprietário do mutex, o comportamento será indefinido.

Confira também

Referência de Arquivos de Cabeçalho
<mutex>