diff options
author | Sulabh Mahajan <sulabh.mahajan@mongodb.com> | 2019-03-21 16:19:12 +1100 |
---|---|---|
committer | Sulabh Mahajan <sulabh.mahajan@mongodb.com> | 2019-03-21 16:19:12 +1100 |
commit | 23ca771f76f85638f23bca2a4a6ac196a81fdc21 (patch) | |
tree | c880d98ac10a9dc60d6999a6d2a7c33f146e7242 /src/mongo/db/concurrency | |
parent | 9614d52c9e83afdde0ae22e16de97f290a08c206 (diff) | |
download | mongo-23ca771f76f85638f23bca2a4a6ac196a81fdc21.tar.gz |
SERVER-39934 Fix locking for slow ops storage stats
SERVER-39654 Make slow ops storage stats work with transactions
Diffstat (limited to 'src/mongo/db/concurrency')
-rw-r--r-- | src/mongo/db/concurrency/global_lock_acquisition_tracker.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/concurrency/global_lock_acquisition_tracker.h | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/mongo/db/concurrency/global_lock_acquisition_tracker.cpp b/src/mongo/db/concurrency/global_lock_acquisition_tracker.cpp index c28bfb643aa..eeec12f3c1a 100644 --- a/src/mongo/db/concurrency/global_lock_acquisition_tracker.cpp +++ b/src/mongo/db/concurrency/global_lock_acquisition_tracker.cpp @@ -44,6 +44,10 @@ bool GlobalLockAcquisitionTracker::getGlobalSharedLockTaken() const { return _globalLockMode & (1 << MODE_S); } +bool GlobalLockAcquisitionTracker::getGlobalLockTaken() const { + return _globalLockMode & ((1 << MODE_IX) | (1 << MODE_X) | (1 << MODE_IS) | (1 << MODE_S)); +} + void GlobalLockAcquisitionTracker::setGlobalLockModeBit(LockMode mode) { _globalLockMode |= (1 << mode); } diff --git a/src/mongo/db/concurrency/global_lock_acquisition_tracker.h b/src/mongo/db/concurrency/global_lock_acquisition_tracker.h index 4e3e5f8bcc5..dae19eb537f 100644 --- a/src/mongo/db/concurrency/global_lock_acquisition_tracker.h +++ b/src/mongo/db/concurrency/global_lock_acquisition_tracker.h @@ -58,6 +58,11 @@ public: bool getGlobalSharedLockTaken() const; /** + * Returns whether we have ever taken a global lock in this operation. + */ + bool getGlobalLockTaken() const; + + /** * Sets the mode bit in _globalLockMode. Once a mode bit is set, we won't clear it. */ void setGlobalLockModeBit(LockMode mode); |