public void ExitReadLock () { EnterMyLock (); if (owners < 1) { ExitMyLock (); throw new SynchronizationLockException ("Releasing lock and no read lock taken"); } --owners; --GetReadLockDetails (Thread.CurrentThread.ManagedThreadId, false).ReadLocks; ExitAndWakeUpAppropriateWaiters (); }
public bool TryGetEntity(UUID id, out ISceneEntity entity) { // Standard thread-safe lookup m_syncRoot.EnterReadLock(); try { return(m_entityUUIDs.TryGetValue(id, out entity)); } finally { m_syncRoot.ExitReadLock(); } }