Partager via


ICLRSyncManager::CreateRWLockOwnerIterator, méthode

Demande que le Common Language Runtime (CLR) crée un itérateur pour que l'hôte puisse déterminer un ensemble de tâches attendant un verrou de lecteur-writer.

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

Paramètres

Valeur de retour

HRESULT

Description

S_OK

CreateRWLockOwnerIterator a été retourné avec succès.

HOST_E_CLRNOTAVAILABLE

Le CLR n'a pas été chargé dans un processus ou le CLR présente un état dans lequel il ne peut pas exécuter de code managé ou traiter l'appel avec succès.

HOST_E_TIMEOUT

L'appel a expiré.

HOST_E_NOT_OWNER

L'appelant ne possède pas le verrou.

HOST_E_ABANDONED

Un événement a été annulé alors qu'un thread bloqué ou une fibre l'attendait.

E_FAIL

Une défaillance grave et inconnue s'est produite. Lorsqu'une méthode retourne E_FAIL, le CLR n'est plus utilisable dans le processus. Les appels suivants aux méthodes d'hébergement retournent HOST_E_CLRNOTAVAILABLE.

HOST_E_INVALIDOPERATION

CreateRWLockOwnerIterator a été appelé sur un thread qui exécute du code managé.

Notes

Les hôtes appellent généralement les méthodes CreateRWLockOwnerIterator, DeleteRWLockOwnerIterator et GetRWLockOwnerNext pendant la détection d'iinterblocage. L'hôte est chargé de s'assurer que le verrou de lecteur-writer est toujours valide, car le CLR ne tente pas de le conserver actif. Plusieurs stratégies sont disponibles pour que l'hôte puisse garantir la validité du verrouillage :

  • L'hôte peut bloquer des appels de libération sur le verrou de lecteur-writer (par exemple, IHostSemaphore::ReleaseSemaphore), tout en s'assurant que ce blocage ne provoque pas d'interblocage.

  • L'hôte peut empêcher la sortie d'attendre l'objet événement associé au verrou de lecteur-writer, tout en s'assurant à nouveau que ce blocage ne provoque pas d'interblocage.

RemarqueRemarque

CreateRWLockOwnerIterator doit être appelé uniquement sur des threads qui exécutent du code non managé.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : MSCorEE.h

Bibliothèque : incluse en tant que ressource dans MSCorEE.dll

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Voir aussi

Référence

ICLRSyncManager, interface

IHostSyncManager, interface