LockCookie GetLockCookie ()
{
LockCookie cookie = new LockCookie (Thread.CurrentThreadId);
if (HasWriterLock())
cookie.WriterLocks = -state;
else {
object locks = reader_locks [Thread.CurrentThreadId];
if (locks != null) cookie.ReaderLocks = (int)locks;
}
return cookie;
}