C# 클래스 Microsoft.Common.Core.Threading.AsyncReaderWriterLock.Queue

파일 보기 프로젝트 열기: Microsoft/RTVS

공개 메소드들

메소드 설명
AddExclusiveReader ( ExclusiveReaderLockSource item, bool &isAddedAfterWriterOrExclusiveReader ) : void

Adds a reader from exclusive reader lock

1. _wTail erlTail ↓ ↓ R−→R−→R ―► R−→R−→R−→E ↑ ↑ _tail _tail 2. _wTail _wTail erlTail ↓ ↓ ↓ R−→R−→W ―► R−→R−→W−→E ↑ ↑ _tail _tail 3. _wTail _wTail erlTail ↓ ↓ ↓ R−→W−→W−→R−→R ―► R−→W−→W−→R−→R−→E ↑ ↑ _tail _tail 4. _wTail _tail _wTail _tail ↓ ↓ ↓ ↓ R−→W−→W−→E−→R ―► R−→W−→W−→E−→E−→R ↑ ↑ erlTail erlTail

AddReader ( LockSource item, bool &isAddedAfterWriter ) : void

Adds a reader item

1. R−→R−→R ―► R−→R−→R−→R ↑ ↑ _tail _tail 2. _wTail _wTail ↓ ↓ R−→R−→W ―► R−→R−→W−→R ↑ ↑ _tail _tail 3. _wTail _wTail ↓ ↓ R−→W−→W−→R ―► R−→W−→W−→R−→R ↑ ↑ _tail _tail

AddWriter ( LockSource item, bool &isFirstWriter ) : void

Adds a writer item

1. _wTail ↓ R−→R−→R ―► R−→R−→R−→W ↑ ↑ _tail _tail 2. _wTail _wTail ↓ ↓ R−→R−→W ―► R−→R−→W−→W ↑ ↑ _tail _tail 3. _wTail _wTail ↓ ↓ R−→W−→W−→R ―► R−→W−→W−→W−→R ↑ ↑ _tail _tail

Remove ( LockSource item ) : LockSource[]

비공개 메소드들

메소드 설명
FilterAndCopyToArray ( LockSource start ) : LockSource[]
FindFirstExclusiveReader ( ExclusiveReaderLock erLock ) : LockSource[]
Link ( LockSource previous, LockSource next ) : void
ReaderCanBeReleased ( LockSource source ) : bool
Unlink ( LockSource item ) : void
UpdateTail ( LockSource item ) : void

메소드 상세

AddExclusiveReader() 공개 메소드

Adds a reader from exclusive reader lock
1. _wTail erlTail ↓ ↓ R−→R−→R ―► R−→R−→R−→E ↑ ↑ _tail _tail 2. _wTail _wTail erlTail ↓ ↓ ↓ R−→R−→W ―► R−→R−→W−→E ↑ ↑ _tail _tail 3. _wTail _wTail erlTail ↓ ↓ ↓ R−→W−→W−→R−→R ―► R−→W−→W−→R−→R−→E ↑ ↑ _tail _tail 4. _wTail _tail _wTail _tail ↓ ↓ ↓ ↓ R−→W−→W−→E−→R ―► R−→W−→W−→E−→E−→R ↑ ↑ erlTail erlTail
public AddExclusiveReader ( ExclusiveReaderLockSource item, bool &isAddedAfterWriterOrExclusiveReader ) : void
item ExclusiveReaderLockSource
isAddedAfterWriterOrExclusiveReader bool
리턴 void

AddReader() 공개 메소드

Adds a reader item
1. R−→R−→R ―► R−→R−→R−→R ↑ ↑ _tail _tail 2. _wTail _wTail ↓ ↓ R−→R−→W ―► R−→R−→W−→R ↑ ↑ _tail _tail 3. _wTail _wTail ↓ ↓ R−→W−→W−→R ―► R−→W−→W−→R−→R ↑ ↑ _tail _tail
public AddReader ( LockSource item, bool &isAddedAfterWriter ) : void
item LockSource
isAddedAfterWriter bool
리턴 void

AddWriter() 공개 메소드

Adds a writer item
1. _wTail ↓ R−→R−→R ―► R−→R−→R−→W ↑ ↑ _tail _tail 2. _wTail _wTail ↓ ↓ R−→R−→W ―► R−→R−→W−→W ↑ ↑ _tail _tail 3. _wTail _wTail ↓ ↓ R−→W−→W−→R ―► R−→W−→W−→W−→R ↑ ↑ _tail _tail
public AddWriter ( LockSource item, bool &isFirstWriter ) : void
item LockSource
isFirstWriter bool
리턴 void

Remove() 공개 메소드

public Remove ( LockSource item ) : LockSource[]
item LockSource
리턴 LockSource[]