summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency/lock_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/concurrency/lock_manager.cpp')
-rw-r--r--src/mongo/db/concurrency/lock_manager.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mongo/db/concurrency/lock_manager.cpp b/src/mongo/db/concurrency/lock_manager.cpp
index 0737febeb25..5650d282ee6 100644
--- a/src/mongo/db/concurrency/lock_manager.cpp
+++ b/src/mongo/db/concurrency/lock_manager.cpp
@@ -47,6 +47,7 @@
#include "mongo/db/service_context.h"
#include "mongo/logv2/log.h"
#include "mongo/util/assert_util.h"
+#include "mongo/util/concurrency/ticketholder.h"
#include "mongo/util/decorable.h"
#include "mongo/util/str.h"
#include "mongo/util/timer.h"
@@ -878,6 +879,24 @@ void LockManager::getLockInfoBSON(const std::map<LockerId, BSONObj>& lockToClien
_buildLocksArray(lockToClientMap, false, this, &lockInfoArr);
}
+void LockManager::setTicketHolders(std::unique_ptr<TicketHolder> reading,
+ std::unique_ptr<TicketHolder> writing) {
+ _readingTicketholder = std::move(reading);
+ _writingTicketholder = std::move(writing);
+}
+
+TicketHolder* LockManager::getTicketHolder(LockMode mode) {
+ switch (mode) {
+ case MODE_IS:
+ case MODE_S:
+ return _readingTicketholder.get();
+ case MODE_IX:
+ return _writingTicketholder.get();
+ default:
+ return nullptr;
+ }
+}
+
void LockManager::_buildLocksArray(const std::map<LockerId, BSONObj>& lockToClientMap,
bool forLogging,
LockManager* mutableThis,