Delen via


Methode ICLRSyncManager::CreateRWLockOwnerIterator

Vraagt dat de COMMON Language Runtime (CLR) een iterator maakt die de host moet gebruiken om de set taken te bepalen die wachten op een lezer-schrijververgrendeling.

Syntaxis

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

Parameters

cookie
[in] De cookie die is gekoppeld aan de gewenste lezer-schrijververgrendeling.

pIterator
[uit] Een aanwijzer naar een iterator die kan worden doorgegeven aan de methoden GetRWLockOwnerNext en DeleteRWLockOwnerIterator .

Retourwaarde

HRESULT Beschrijving
S_OK CreateRWLockOwnerIterator is geretourneerd.
HOST_E_CLRNOTAVAILABLE De CLR is niet geladen in een proces of de CLR heeft een status waarin beheerde code niet kan worden uitgevoerd of de aanroep kan worden verwerkt.
HOST_E_TIMEOUT Er is een time-out opgetreden voor het gesprek.
HOST_E_NOT_OWNER De beller is niet de eigenaar van het slot.
HOST_E_ABANDONED Een gebeurtenis is geannuleerd terwijl er een geblokkeerde thread of glasvezel op wachtte.
E_FAIL Er is een onbekende catastrofale fout opgetreden. Wanneer een methode E_FAIL retourneert, is de CLR niet meer bruikbaar binnen het proces. Volgende aanroepen naar hostingmethoden retourneren HOST_E_CLRNOTAVAILABLE.
HOST_E_INVALIDOPERATION CreateRWLockOwnerIterator is aangeroepen op een thread die momenteel beheerde code uitvoert.

Opmerkingen

Hosts roepen doorgaans de CreateRWLockOwnerIteratormethoden , DeleteRWLockOwnerIteratoren GetRWLockOwnerNext aan tijdens de detectie van impasses. De host is verantwoordelijk om ervoor te zorgen dat de lezer-schrijververgrendeling nog steeds geldig is, omdat de CLR geen poging doet om de lezer-schrijververgrendeling levend te houden. Er zijn verschillende strategieën beschikbaar voor de host om de geldigheid van de vergrendeling te garanderen:

  • De host kan releaseaanroepen blokkeren op de lezer-writer-vergrendeling (bijvoorbeeld IHostSemaphore::ReleaseSemaphore) en ervoor zorgen dat dit blok geen impasse veroorzaakt.

  • De host kan voorkomen dat de afsluiter wacht op het gebeurtenisobject dat is gekoppeld aan de lezer-writer-vergrendeling, om er nogmaals voor te zorgen dat dit blok geen impasse veroorzaakt.

Notitie

CreateRWLockOwnerIterator moet alleen worden aangeroepen voor threads die momenteel niet-beheerde code uitvoeren.

Vereisten

Platforms: Zie Systeemvereisten.

Header: MSCorEE.h

Bibliotheek: Opgenomen als een resource in MSCorEE.dll

.NET Framework versies: beschikbaar sinds 2.0

Zie ook