diff options
author | Dianna Hohensee <dianna.hohensee@mongodb.com> | 2020-09-28 10:41:35 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-09-30 15:26:17 +0000 |
commit | 3b8dfefeb9809a826354460b653b9d964730a18a (patch) | |
tree | 83b8bd97c666f2797e5e46eeefa53af85198d5a3 /src/mongo/db/db_raii.cpp | |
parent | cadb990e1ac4229bcf419f47c82656b6458faf8a (diff) | |
download | mongo-3b8dfefeb9809a826354460b653b9d964730a18a.tar.gz |
SERVER-51091 Rearrange AutoGetCollection templating and inheritance to have separate -LFR and non-LFR (lock-free read) lock helpers.
Diffstat (limited to 'src/mongo/db/db_raii.cpp')
-rw-r--r-- | src/mongo/db/db_raii.cpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/mongo/db/db_raii.cpp b/src/mongo/db/db_raii.cpp index 7e2397f2521..7ffe40349ab 100644 --- a/src/mongo/db/db_raii.cpp +++ b/src/mongo/db/db_raii.cpp @@ -84,10 +84,12 @@ AutoStatsTracker::~AutoStatsTracker() { curOp->getReadWriteType()); } -AutoGetCollectionForRead::AutoGetCollectionForRead(OperationContext* opCtx, - const NamespaceStringOrUUID& nsOrUUID, - AutoGetCollectionViewMode viewMode, - Date_t deadline) { +template <typename AutoGetCollectionType> +AutoGetCollectionForReadBase<AutoGetCollectionType>::AutoGetCollectionForReadBase( + OperationContext* opCtx, + const NamespaceStringOrUUID& nsOrUUID, + AutoGetCollectionViewMode viewMode, + Date_t deadline) { // The caller was expecting to conflict with batch application before entering this function. // i.e. the caller does not currently have a ShouldNotConflict... block in scope. bool callerWasConflicting = opCtx->lockState()->shouldConflictWithSecondaryBatchApplication(); @@ -241,13 +243,13 @@ AutoGetCollectionForRead::AutoGetCollectionForRead(OperationContext* opCtx, } } - -AutoGetCollectionForReadCommand::AutoGetCollectionForReadCommand( - OperationContext* opCtx, - const NamespaceStringOrUUID& nsOrUUID, - AutoGetCollectionViewMode viewMode, - Date_t deadline, - AutoStatsTracker::LogMode logMode) +template <typename AutoGetCollectionForReadType> +AutoGetCollectionForReadCommandBase<AutoGetCollectionForReadType>:: + AutoGetCollectionForReadCommandBase(OperationContext* opCtx, + const NamespaceStringOrUUID& nsOrUUID, + AutoGetCollectionViewMode viewMode, + Date_t deadline, + AutoStatsTracker::LogMode logMode) : _autoCollForRead(opCtx, nsOrUUID, viewMode, deadline), _statsTracker( opCtx, @@ -338,4 +340,7 @@ BlockSecondaryReadsDuringBatchApplication_DONT_USE:: allowSecondaryReads->swap(_originalSettings); } +template class AutoGetCollectionForReadBase<AutoGetCollection>; +template class AutoGetCollectionForReadCommandBase<AutoGetCollectionForRead>; + } // namespace mongo |