public async Task LockManager_ConfirmLockingIsSingleEntry() { LockRelease lck = LockManager.GetLock(LockType.OfferCreated); Assert.Equal(1, lck.LockCurrentCount); await lck.Lock(); Assert.Equal(0, lck.LockCurrentCount); var type = typeof(Exception); await Assert.ThrowsAsync(type, () => lck.Lock(0)); }
public async Task LockManager_ConfirmLockingWorks() { LockRelease lck = LockManager.GetLock(LockType.OfferCreated); Assert.Equal(1, lck.LockCurrentCount); await lck.Lock(); Assert.Equal(0, lck.LockCurrentCount); lck.Dispose(); Assert.Equal(1, lck.LockCurrentCount); }
public bool TryAcquire(out ILockRelease lockRelease) { lock (_lockedStateAccessLock) { if (!IsLocked) { lockRelease = new LockRelease(this); return(true); } else { lockRelease = null; return(false); } } }
/** * Move from LockedTuples to the tuplespace the "locked" tuples by the take request */ private void ProcessLockRelease(LockRelease lockRelease) { ReleaseLockedTuples(lockRelease.TakeRequestSeqNum); }