diff options
Diffstat (limited to 'src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp')
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp index 3e05d6b0f55..f95dc90b7bf 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp @@ -955,6 +955,8 @@ void WiredTigerRecoveryUnit::setRoundUpPreparedTimestamps(bool value) { void WiredTigerRecoveryUnit::setTimestampReadSource(ReadSource readSource, boost::optional<Timestamp> provided) { + tassert(5863604, "Cannot change ReadSource as it is pinned.", !isReadSourcePinned()); + LOGV2_DEBUG(22416, 3, "setting timestamp read source", @@ -976,6 +978,20 @@ RecoveryUnit::ReadSource WiredTigerRecoveryUnit::getTimestampReadSource() const return _timestampReadSource; } +void WiredTigerRecoveryUnit::pinReadSource() { + LOGV2_DEBUG(5863602, 3, "Pinning read source on WT recovery unit"); + _readSourcePinned = true; +} + +void WiredTigerRecoveryUnit::unpinReadSource() { + LOGV2_DEBUG(5863603, 3, "Unpinning WT recovery unit read source"); + _readSourcePinned = false; +} + +bool WiredTigerRecoveryUnit::isReadSourcePinned() const { + return _readSourcePinned; +} + void WiredTigerRecoveryUnit::beginIdle() { // Close all cursors, we don't want to keep any old cached cursors around. if (_session) { |