summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency/d_concurrency.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/concurrency/d_concurrency.cpp')
-rw-r--r--src/mongo/db/concurrency/d_concurrency.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/concurrency/d_concurrency.cpp b/src/mongo/db/concurrency/d_concurrency.cpp
index f7dabcc2248..6e7bd1ee7d6 100644
--- a/src/mongo/db/concurrency/d_concurrency.cpp
+++ b/src/mongo/db/concurrency/d_concurrency.cpp
@@ -34,6 +34,7 @@
#include <string>
+#include "mongo/db/concurrency/global_lock_acquisition_tracker.h"
#include "mongo/db/namespace_string.h"
#include "mongo/db/server_parameters.h"
#include "mongo/db/service_context.h"
@@ -91,6 +92,13 @@ void Lock::GlobalLock::waitForLock(unsigned timeoutMs) {
if (_result != LOCK_OK && _locker->shouldConflictWithSecondaryBatchApplication()) {
_pbwm.unlock();
}
+
+ if (_locker->isWriteLocked() && haveClient()) {
+ auto opCtx = cc().getOperationContext();
+ if (opCtx) {
+ GlobalLockAcquisitionTracker::get(opCtx).setGlobalExclusiveLockTaken();
+ }
+ }
}
void Lock::GlobalLock::_unlock() {