System.Threading.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;
		}
#endregion