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