Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetThreadRWCount()

ReaderWriterCount System.Threading.ReaderWriterLockSlim.GetThreadRWCount ( bool dontAllocate)
inlineprivate

Definition at line 419 of file ReaderWriterLockSlim.cs.

420 {
421 ReaderWriterCount next = t_rwc;
422 ReaderWriterCount readerWriterCount = null;
423 while (next != null)
424 {
425 if (next.lockID == _lockID)
426 {
427 return next;
428 }
429 if (!dontAllocate && readerWriterCount == null && IsRWEntryEmpty(next))
430 {
431 readerWriterCount = next;
432 }
433 next = next.next;
434 }
435 if (dontAllocate)
436 {
437 return null;
438 }
439 if (readerWriterCount == null)
440 {
441 readerWriterCount = new ReaderWriterCount();
442 readerWriterCount.next = t_rwc;
443 t_rwc = readerWriterCount;
444 }
445 readerWriterCount.lockID = _lockID;
446 return readerWriterCount;
447 }
static bool IsRWEntryEmpty(ReaderWriterCount rwc)

References System.Threading.ReaderWriterLockSlim._lockID, System.Threading.ReaderWriterLockSlim.IsRWEntryEmpty(), System.Threading.ReaderWriterCount.lockID, System.Threading.ReaderWriterCount.next, and System.Threading.ReaderWriterLockSlim.t_rwc.

Referenced by System.Threading.ReaderWriterLockSlim.ExitReadLock(), System.Threading.ReaderWriterLockSlim.ExitUpgradeableReadLock(), System.Threading.ReaderWriterLockSlim.ExitWriteLock(), System.Threading.ReaderWriterLockSlim.TryEnterReadLockCore(), System.Threading.ReaderWriterLockSlim.TryEnterUpgradeableReadLockCore(), and System.Threading.ReaderWriterLockSlim.TryEnterWriteLockCore().