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/db_raii.h | |
parent | b52615ee4e518bcb29bd0601d904fd9e059ce77e (diff) | |
download | mongo-e28c2f4732e490ed8efa6148d20d889dfd603028.tar.gz |
SERVER-32682 Use deadline-oriented mechanism for lock timeout
Diffstat (limited to 'src/mongo/db/db_raii.h')
-rw-r--r-- | src/mongo/db/db_raii.h | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/mongo/db/db_raii.h b/src/mongo/db/db_raii.h index 31b82a6685a..e2c4e6d2c09 100644 --- a/src/mongo/db/db_raii.h +++ b/src/mongo/db/db_raii.h @@ -54,7 +54,7 @@ public: const NamespaceString& nss, Top::LockType lockType, boost::optional<int> dbProfilingLevel, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); /** * Records stats about the current operation via Top. @@ -85,19 +85,19 @@ class AutoGetCollectionForRead { public: AutoGetCollectionForRead(OperationContext* opCtx, const NamespaceString& nss, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); AutoGetCollectionForRead(OperationContext* opCtx, const StringData dbName, const UUID& uuid, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); // TODO (SERVER-32367): Do not use this constructor, it is for internal purposes only AutoGetCollectionForRead(OperationContext* opCtx, const NamespaceStringOrUUID& nsOrUUID, AutoGetCollection::ViewMode viewMode, Lock::DBLock lock, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); Database* getDb() const { return _autoColl->getDb(); @@ -133,24 +133,22 @@ class AutoGetCollectionForReadCommand { public: AutoGetCollectionForReadCommand(OperationContext* opCtx, const NamespaceString& nss, - Milliseconds timeoutMs = Milliseconds::max()) + Date_t deadline = Date_t::max()) : AutoGetCollectionForReadCommand( - opCtx, nss, AutoGetCollection::ViewMode::kViewsForbidden, timeoutMs) {} + opCtx, nss, AutoGetCollection::ViewMode::kViewsForbidden, deadline) {} AutoGetCollectionForReadCommand(OperationContext* opCtx, const NamespaceString& nss, Lock::DBLock lock, - Milliseconds timeoutMs = Milliseconds::max()) - : AutoGetCollectionForReadCommand(opCtx, - nss, - AutoGetCollection::ViewMode::kViewsForbidden, - std::move(lock), - timeoutMs) {} + Date_t deadline = Date_t::max()) + : AutoGetCollectionForReadCommand( + opCtx, nss, AutoGetCollection::ViewMode::kViewsForbidden, std::move(lock), deadline) { + } AutoGetCollectionForReadCommand(OperationContext* opCtx, const StringData dbName, const UUID& uuid, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); Database* getDb() const { return _autoCollForRead->getDb(); @@ -164,13 +162,13 @@ protected: AutoGetCollectionForReadCommand(OperationContext* opCtx, const NamespaceString& nss, AutoGetCollection::ViewMode viewMode, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); AutoGetCollectionForReadCommand(OperationContext* opCtx, const NamespaceString& nss, AutoGetCollection::ViewMode viewMode, Lock::DBLock lock, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); // '_autoCollForRead' may need to be reset by AutoGetCollectionOrViewForReadCommand, so needs to // be a boost::optional. @@ -194,11 +192,11 @@ class AutoGetCollectionOrViewForReadCommand final : public AutoGetCollectionForR public: AutoGetCollectionOrViewForReadCommand(OperationContext* opCtx, const NamespaceString& nss, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); AutoGetCollectionOrViewForReadCommand(OperationContext* opCtx, const NamespaceString& nss, Lock::DBLock lock, - Milliseconds timeoutMs = Milliseconds::max()); + Date_t deadline = Date_t::max()); ViewDefinition* getView() const { return _view.get(); |