Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Representa um tipo mutex programado. Objetos desse tipo são usados para impor a exclusão mútua usando o tempo limite de bloqueio dentro de um programa. Ao contrário de objetos do tipo timed_mutex, o efeito de chamar métodos de bloqueio para objetos recursive_timed_mutex é bem definido.
Sintaxe
class recursive_timed_mutex;
Membros
Construtores públicos
| Nome | Descrição |
|---|---|
| recursive_timed_mutex | Constrói um objeto recursive_timed_mutex que não está bloqueado. |
| Destruidor ~recursive_timed_mutex | Libera todos os recursos usados pelo objeto recursive_timed_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 o bloqueio. |
| try_lock_for | Tenta obter a propriedade do mutex por um intervalo de tempo especificado. |
| try_lock_until | Tenta obter a propriedade do mutex até um tempo especificado. |
| 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.
Construtor recursive_timed_mutex
Constrói um objeto recursive_timed_mutex que não está bloqueado.
recursive_timed_mutex();
Destruidor ~recursive_timed_mutex
Libera todos os recursos usados pelo objeto recursive_timed_mutex.
~recursive_timed_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; caso contrário, 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.
try_lock_for
Tenta obter a propriedade do mutex sem o bloqueio.
template <class Rep, class Period>
bool try_lock_for(const chrono::duration<Rep, Period>& Rel_time);
Parâmetros
Rel_time
Um objeto chrono::duration que especifica o tempo máximo que o método tenta obter a propriedade do mutex.
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; caso contrário, false.
Comentários
Se o thread de chamada já possui o mutex, o método retornará true imediatamente e o bloqueio anterior permanece em vigor.
try_lock_until
Tenta obter a propriedade do mutex sem o bloqueio.
template <class Clock, class Duration>
bool try_lock_for(const chrono::time_point<Clock, Duration>& Abs_time);
bool try_lock_until(const xtime* Abs_time);
Parâmetros
Abs_time
Um ponto no tempo que especifica o limite após o qual o método não tenta mais obter a propriedade do mutex.
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; caso contrário, false.
Comentários
Se o thread de chamada já possui o mutex, o método retornará 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, try_lock, try_lock_for e try_lock_until foram chamados com êxito no objeto recursive_timed_mutex.
Se o thread de chamada não for o proprietário do mutex, o comportamento será indefinido.