System.Threading.ReaderWriterLock.ThreadLocalLockEntry.GetOrCreateCurrent C# (CSharp) Метод

GetOrCreateCurrent() публичный статический Метод

public static GetOrCreateCurrent ( long lockID ) : ThreadLocalLockEntry
lockID long
Результат ThreadLocalLockEntry
            public static ThreadLocalLockEntry GetOrCreateCurrent(long lockID)
            {
                Debug.Assert(lockID != 0);

                ThreadLocalLockEntry headEntry = t_lockEntryHead;
                if (headEntry != null)
                {
                    if (headEntry._lockID == lockID)
                    {
                        VerifyNoNonemptyEntryInListAfter(lockID, headEntry);
                        return headEntry;
                    }

                    if (headEntry.IsFree)
                    {
                        VerifyNoNonemptyEntryInListAfter(lockID, headEntry);
                        headEntry._lockID = lockID;
                        return headEntry;
                    }
                }

                return GetOrCreateCurrentSlow(lockID, headEntry);
            }