Partilhar via


Método de ICLRSyncManager::CreateRWLockOwnerIterator

Solicita que o common language runtime (CLR) criar um iterador do host usar para determinar o conjunto de tarefas esperando um bloqueio de leitor-gravador.

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

Parâmetros

Valor de retorno

HRESULT

Descrição

S_OK

CreateRWLockOwnerIteratorretornado com êxito.

HOST_E_CLRNOTAVAILABLE

O CLR não foi carregado em um processo ou o CLR é em um estado em que ele não é possível executar código gerenciado ou processar a chamada com êxito.

HOST_E_TIMEOUT

A chamada foi esgotado.

HOST_E_NOT_OWNER

O chamador não possui o bloqueio.

HOST_E_ABANDONED

Um evento foi cancelado, enquanto um segmento bloqueado ou fibra estava esperando por ele.

E_FAIL

Ocorreu uma falha catastrófica desconhecida. Quando um método retorna E_FAIL, o CLR não é usável dentro do processo. As chamadas subseqüentes para hospedar os métodos retornam HOST_E_CLRNOTAVAILABLE.

HOST_E_INVALIDOPERATION

CreateRWLockOwnerIteratorfoi chamado em um thread que está sendo executado o código gerenciado.

Comentários

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

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

  • O host pode bloquear a saída de esperar o objeto de evento associado com o bloqueio de leitor-gravador, novamente, garantindo que este bloco não causar o bloqueio.

Observação

CreateRWLockOwnerIteratordeve ser chamado apenas em segmentos que estão em execução de código não gerenciado.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: MSCorEE.h

Biblioteca: Incluído como um recurso em mscoree

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface de ICLRSyncManager

Interface de IHostSyncManager