Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
System.Threading.ReaderWriterLock Class Referencesealed

Classes

class  ReaderWriterLockApplicationException
 
class  ThreadLocalLockEntry
 

Public Member Functions

 ReaderWriterLock ()
 
bool AnyWritersSince (int seqNum)
 
void AcquireReaderLock (int millisecondsTimeout)
 
void AcquireReaderLock (TimeSpan timeout)
 
void AcquireWriterLock (int millisecondsTimeout)
 
void AcquireWriterLock (TimeSpan timeout)
 
void ReleaseReaderLock ()
 
void ReleaseWriterLock ()
 
LockCookie UpgradeToWriterLock (int millisecondsTimeout)
 
LockCookie UpgradeToWriterLock (TimeSpan timeout)
 
void DowngradeFromWriterLock (ref LockCookie lockCookie)
 
LockCookie ReleaseLock ()
 
void RestoreLock (ref LockCookie lockCookie)
 

Properties

bool IsReaderLockHeld [get]
 
bool IsWriterLockHeld [get]
 
int WriterSeqNum [get]
 

Private Member Functions

void RecoverLock (ref LockCookie lockCookie, LockCookieFlags flags)
 
ManualResetEventSlim GetOrCreateReaderEvent ()
 
AutoResetEvent GetOrCreateWriterEvent ()
 
ManualResetEventSlim TryGetOrCreateReaderEvent ()
 
AutoResetEvent TryGetOrCreateWriterEvent ()
 
void ReleaseEvents ()
 

Static Private Member Functions

static int GetCurrentThreadID ()
 
static bool YieldProcessor ()
 
static ArgumentOutOfRangeException GetInvalidTimeoutException (string parameterName)
 
static int ToTimeoutMilliseconds (TimeSpan timeout)
 
static ApplicationException GetTimeoutException ()
 
static ApplicationException GetNotOwnerException ()
 
static ApplicationException GetInvalidLockCookieException ()
 

Private Attributes

ManualResetEventSlim _readerEvent
 
AutoResetEvent _writerEvent
 
readonly long _lockID
 
volatile int _state
 
int _writerID = -1
 
int _writerSeqNum = 1
 
ushort _writerLevel
 

Static Private Attributes

static readonly int DefaultSpinCount = ((Environment.ProcessorCount != 1) ? 500 : 0)
 
static long s_mostRecentLockID
 

Detailed Description

Definition at line 7 of file ReaderWriterLock.cs.


The documentation for this class was generated from the following file: