コード例 #1
0
ファイル: LockManagerTests.cs プロジェクト: lukeskinner/OTHub
        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));
        }
コード例 #2
0
ファイル: LockManagerTests.cs プロジェクト: lukeskinner/OTHub
        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);
        }
コード例 #3
0
 public bool TryAcquire(out ILockRelease lockRelease)
 {
     lock (_lockedStateAccessLock)
     {
         if (!IsLocked)
         {
             lockRelease = new LockRelease(this);
             return(true);
         }
         else
         {
             lockRelease = null;
             return(false);
         }
     }
 }
コード例 #4
0
 /**
  * Move from LockedTuples to the tuplespace the "locked" tuples by the take request
  */
 private void ProcessLockRelease(LockRelease lockRelease)
 {
     ReleaseLockedTuples(lockRelease.TakeRequestSeqNum);
 }