Compartir a través de


ICLRSyncManager::CreateRWLockOwnerIterator (Método)

Solicita que Common Language Runtime (CLR) cree un iterador para que el host lo use a fin de determinar el conjunto de tareas que esperan en un bloqueo de lector-escritor.

Sintaxis

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

Parámetros

cookie
[in] Cookie asociada al bloqueo de lector-escritor deseado.

pIterator
[out] Un puntero a un iterador que se puede pasar a los métodos GetRWLockOwnerNext y DeleteRWLockOwnerIterator.

Valor devuelto

HRESULT Descripción
S_OK CreateRWLockOwnerIterator se devolvió correctamente.
HOST_E_CLRNOTAVAILABLE Si se devuelve este valor, significa que Common Language Runtime (CLR) no se ha cargado en un proceso o se encuentra en un estado en el que no puede ejecutar código administrado ni procesar la llamada correctamente.
HOST_E_TIMEOUT Se agotó el tiempo de espera de la llamada.
HOST_E_NOT_OWNER El autor de la llamada no es el propietario del bloqueo.
HOST_E_ABANDONED Se canceló un evento mientras que una fibra o subproceso que estaba bloqueado lo estaba esperando.
E_FAIL Ocurrió un error grave desconocido. Si un método devuelve el valor E_FAIL, el CLR ya no se podrá usar en el proceso. Las llamadas que se hagan a los métodos de hospedaje posteriormente devolverán el valor HOST_E_CLRNOTAVAILABLE.
HOST_E_INVALIDOPERATION CreateRWLockOwnerIterator se llamó a en un subproceso que ejecuta código administrado actualmente.

Comentarios

Los hosts suelen llamar a los métodos, CreateRWLockOwnerIterator, DeleteRWLockOwnerIterator y GetRWLockOwnerNext durante la detección de interbloqueos. El host es responsable de asegurarse de que el bloqueo lector-escritor sigue siendo válido, ya que CLR no intenta mantener el bloqueo lector-escritor activo. Hay varias estrategias disponibles para el host para garantizar la validez del bloqueo:

  • El host puede bloquear las llamadas de versión en el bloqueo lector-escritor (por ejemplo, IHostSemaphore::ReleaseSemaphore) al mismo tiempo que garantiza que este bloque no cause interbloqueo.

  • El host puede impedir que la salida espere en el objeto de evento asociado al bloqueo lector-escritor, de nuevo asegurándose de que este bloque no cause interbloqueo.

Nota

CreateRWLockOwnerIterator solo se debe llamar a en subprocesos que ejecutan código no administrado actualmente.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: MSCorEE.h

Biblioteca: incluida como recurso en MSCorEE.dll

Versiones de .NET Framework: disponible a partir de la versión 2.0

Consulte también