public void AcquireTableReadLock(ITable table, Transaction transaction) { ILock tableLock = this.tableLocks[table]; var lockInfo = this.lockInventory.GetLockInformation(tableLock, transaction); if (!lockInfo.IsReadLockHeld) { if (!lockInfo.IsWriteLockHeld) { // TODO: OnWaiting tableLock.EnterRead(); // TODO: OnAcquired } lockInfo.IsReadLockHeld = true; } }