diff options
author | Xiangyu Yao <xiangyu.yao@mongodb.com> | 2018-02-06 12:05:21 -0500 |
---|---|---|
committer | Xiangyu Yao <xiangyu.yao@mongodb.com> | 2018-02-09 15:54:48 -0500 |
commit | e28c2f4732e490ed8efa6148d20d889dfd603028 (patch) | |
tree | d89d407bd23960ce30a68fe17b2be0992245bd80 /src/mongo/db/concurrency/lock_state_test.cpp | |
parent | b52615ee4e518bcb29bd0601d904fd9e059ce77e (diff) | |
download | mongo-e28c2f4732e490ed8efa6148d20d889dfd603028.tar.gz |
SERVER-32682 Use deadline-oriented mechanism for lock timeout
Diffstat (limited to 'src/mongo/db/concurrency/lock_state_test.cpp')
-rw-r--r-- | src/mongo/db/concurrency/lock_state_test.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/mongo/db/concurrency/lock_state_test.cpp b/src/mongo/db/concurrency/lock_state_test.cpp index e96a460d61f..9d4a15ef1af 100644 --- a/src/mongo/db/concurrency/lock_state_test.cpp +++ b/src/mongo/db/concurrency/lock_state_test.cpp @@ -88,7 +88,7 @@ TEST(LockerImpl, ConflictWithTimeout) { DefaultLockerImpl locker2; ASSERT(LOCK_OK == locker2.lockGlobal(MODE_IX)); - ASSERT(LOCK_TIMEOUT == locker2.lock(resId, MODE_S, Milliseconds(0))); + ASSERT(LOCK_TIMEOUT == locker2.lock(resId, MODE_S, Date_t::now())); ASSERT(locker2.getLockMode(resId) == MODE_NONE); @@ -110,7 +110,7 @@ TEST(LockerImpl, ConflictUpgradeWithTimeout) { ASSERT(LOCK_OK == locker2.lock(resId, MODE_S)); // Try upgrading locker 1, which should block and timeout - ASSERT(LOCK_TIMEOUT == locker1.lock(resId, MODE_X, Milliseconds(1))); + ASSERT(LOCK_TIMEOUT == locker1.lock(resId, MODE_X, Date_t::now() + Milliseconds(1))); locker1.unlockGlobal(); locker2.unlockGlobal(); @@ -276,14 +276,18 @@ TEST(LockerImpl, CanceledDeadlockUnblocks) { ASSERT(LOCK_WAITING == locker3.lockBegin(db1, MODE_S)); // Detect deadlock, canceling our request - ASSERT(LOCK_DEADLOCK == - locker2.lockComplete(db1, MODE_X, Milliseconds(1), /*checkDeadlock*/ true)); + ASSERT( + LOCK_DEADLOCK == + locker2.lockComplete(db1, MODE_X, Date_t::now() + Milliseconds(1), /*checkDeadlock*/ true)); // Now locker3 must be able to complete its request - ASSERT(LOCK_OK == locker3.lockComplete(db1, MODE_S, Milliseconds(1), /*checkDeadlock*/ false)); + ASSERT(LOCK_OK == + locker3.lockComplete( + db1, MODE_S, Date_t::now() + Milliseconds(1), /*checkDeadlock*/ false)); // Locker1 still can't complete its request - ASSERT(LOCK_TIMEOUT == locker1.lockComplete(db2, MODE_X, Milliseconds(1), false)); + ASSERT(LOCK_TIMEOUT == + locker1.lockComplete(db2, MODE_X, Date_t::now() + Milliseconds(1), false)); // Check ownership for db1 ASSERT(locker1.getLockMode(db1) == MODE_S); @@ -374,10 +378,9 @@ TEST(LockerImpl, GetLockerInfoShouldReportPendingLocks) { ASSERT(successfulLocker.unlock(dbId)); ASSERT(successfulLocker.unlockGlobal()); - const Milliseconds timeout = Milliseconds(0); const bool checkDeadlock = false; ASSERT_EQ(LOCK_OK, - conflictingLocker.lockComplete(collectionId, MODE_IS, timeout, checkDeadlock)); + conflictingLocker.lockComplete(collectionId, MODE_IS, Date_t::now(), checkDeadlock)); conflictingLocker.getLockerInfo(&lockerInfo); ASSERT_FALSE(lockerInfo.waitingResource.isValid()); |