diff options
Diffstat (limited to 'src/mongo/db/concurrency/d_concurrency.cpp')
| -rw-r--r-- | src/mongo/db/concurrency/d_concurrency.cpp | 8 |
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() { |
