public static LockData Create(long lockID) { LockData rlock = new LockData { LockID = lockID}; #if DEBUG rlock.Timestamp = DateTimeOffset.Now; #endif return rlock; }
public static LockData Create(long lockID) { LockData rlock = new LockData { LockID = lockID }; #if DEBUG rlock.Timestamp = DateTimeOffset.Now; #endif return(rlock); }
// // Returns 0 if lock was not acquired because somebody else already holds it // Else returns > 0 // Does NOT BLOCK // public long AcquireLock(string itemID) { if (string.IsNullOrEmpty(itemID)) { throw new ArgumentException("itemID"); } lock (m_locks) { if (this.GetLock(itemID) != null) { return(LockNotAcquired); } long lockID = this.NextLockID(); Debug.Assert(RecordItemLockTable.IsValidLockID(lockID)); m_locks[itemID] = LockData.Create(lockID); return(lockID); } }
void ValidateLock(LockData? rLock, long lockID) { if (rLock == null) { throw new StoreException(StoreErrorNumber.ItemNotLocked); } if (!rLock.Value.IsLock(lockID)) { throw new StoreException(StoreErrorNumber.ItemLockMismatch); } }