Partilhar via


Método ICLRSyncManager::CreateRWLockOwnerIterator

Solicita que o common linguagem tempo de execução (CLR) criar um iterador para que o host usar para determinar o conjunto de tarefas esperando um bloquear de leitor-autor.

HRESULT CreateRWLockOwnerIterator (
    [in]  SIZE_T    cookie,
    [out] SIZE_T   *pIterator
);

Parâmetros

Valor de retorno

HRESULT

Descrição

S_OK

CreateRWLockOwnerIterator retornado com êxito.

HOST_E_CLRNOTAVAILABLE

O CLR não foi carregado em um processo ou o CLR está em um estado em que ele não possa executar código gerenciado ou processar a telefonar com êxito.

HOST_E_TIMEOUT

A telefonar expirou.

HOST_E_NOT_OWNER

O chamador não é proprietário do bloquear.

HOST_E_ABANDONED

Um evento foi cancelado enquanto um segmento bloqueado ou fibra estava aguardando nele.

E_FAIL

Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é mais útil dentro do processo. As chamadas subseqüentes à hospedagem métodos retornam HOST_E_CLRNOTAVAILABLE.

HOST_E_INVALIDOPERATION

CreateRWLockOwnerIterator foi chamado em um thread que está executando o código gerenciado.

Comentários

Hosts normalmente chama a CreateRWLockOwnerIterator, DeleteRWLockOwnerIterator, e GetRWLockOwnerNext métodos durante a detecção de deadlock. O host é responsável por garantir que o bloquear de leitor-autor ainda é válido, porque o CLR não faz nenhuma tentativa para manter o bloquear de leitor-autor ativo. Várias estratégias estão disponível para o host garantir a validade do bloquear:

  • O host pode bloquear chamadas de liberação no bloqueio de leitor-gravador (por exemplo, IHostSemaphore::ReleaseSemaphore) garantindo que este bloco não causa deadlock.

  • O host pode bloquear a sair da aguardando o objeto de evento associado com o bloqueio de leitor-autor, novamente, garantindo que este bloco não causa deadlock.

ObservaçãoObservação:

CreateRWLockOwnerIterator deve ser chamado apenas em segmentos que estão atualmente em execução código não gerenciado.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: MSCorEE.idl

Biblioteca: Incluído sistema autônomo um recurso em MSCorEE.dll

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface ICLRSyncManager

Interface IHostSyncManager