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.