OpenMetaverse.ReaderWriterLockSlim.GetReadLockDetails C# (CSharp) Method

GetReadLockDetails() private method

private GetReadLockDetails ( int threadId, bool create ) : LockDetails
threadId int
create bool
return LockDetails
        LockDetails GetReadLockDetails(int threadId, bool create)
        {
            int i;
            LockDetails ld;
            for (i = 0; i < read_locks.Length; ++i)
            {
                ld = read_locks[i];
                if (ld == null)
                    break;

                if (ld.ThreadId == threadId)
                    return ld;
            }

            if (!create)
                return null;

            if (i == read_locks.Length)
                Array.Resize(ref read_locks, read_locks.Length * 2);

            ld = read_locks[i] = new LockDetails();
            ld.ThreadId = threadId;
            return ld;
        }