Compartilhar via


Método ICLRSyncManager::GetMonitorOwner

Obtém a instância IHostTask que possui o monitor identificado pelo cookie especificado.

Sintaxe

HRESULT GetMonitorOwner (  
    [in]  SIZE_T     cookie,  
    [out] IHostTask *ppOwnerHostTask  
);  

Parâmetros

cookie
[in] O cookie associado ao monitor.

ppOwnerHostTask
[out] Um ponteiro para o IHostTask que atualmente possui o monitor, ou nulo se nenhuma tarefa tiver propriedade.

Valor Retornado

HRESULT Descrição
S_OK GetMonitorOwner retornado com êxito.
HOST_E_CLRNOTAVAILABLE O CLR não foi carregado em um processo, ou o CLR está em um estado no qual não pode executar código gerenciado ou processar a chamada com êxito.
HOST_E_TIMEOUT Uma chamada atingiu o tempo limite.
HOST_E_NOT_OWNER O chamador não possui o bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto uma fibra ou um thread bloqueado estava esperando por ele.
E_FAIL Uma falha catastrófica desconhecida ocorreu. Quando um método retorna E_FAIL, o CLR não pode mais ser usado no processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE.

Comentários

O host normalmente chama GetMonitorOwner como parte de um mecanismo de detecção de deadlock. O cookie é associado a um monitor quando é criado usando uma chamada para IHostSyncManager::CreateMonitorEvent.

Observação

Uma chamada para liberar o evento subjacente ao monitor poderá bloquear, mas não será deadlock, se uma chamada para esse método estiver em vigor no cookie associado a esse monitor. Outras tarefas também poderão ser bloqueadas se tentarem adquirir esse monitor.

GetMonitorOwner sempre retornará imediatamente e poderá ser chamado a qualquer momento após uma chamada para CreateMonitorEvent. O host não precisa esperar até que uma tarefa esteja aguardando o evento.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: MSCorEE.h

Biblioteca: incluída como um recurso no MSCorEE.dll

Versões do .NET Framework: disponíveis desde 2.0

Confira também