summaryrefslogtreecommitdiff
path: root/src/mongo/db/catalog/collection_catalog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/catalog/collection_catalog.cpp')
-rw-r--r--src/mongo/db/catalog/collection_catalog.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mongo/db/catalog/collection_catalog.cpp b/src/mongo/db/catalog/collection_catalog.cpp
index 29bb7c6093c..676fd875853 100644
--- a/src/mongo/db/catalog/collection_catalog.cpp
+++ b/src/mongo/db/catalog/collection_catalog.cpp
@@ -835,16 +835,17 @@ void CollectionCatalog::onCloseDatabase(OperationContext* opCtx, DatabaseName db
_viewsForDatabase.erase(dbName);
}
-void CollectionCatalog::onCloseCatalog(OperationContext* opCtx) {
- invariant(opCtx->lockState()->isW());
- invariant(!_shadowCatalog);
+void CollectionCatalog::onCloseCatalog() {
+ if (_shadowCatalog) {
+ return;
+ }
+
_shadowCatalog.emplace();
for (auto& entry : _catalog)
_shadowCatalog->insert({entry.first, entry.second->ns()});
}
-void CollectionCatalog::onOpenCatalog(OperationContext* opCtx) {
- invariant(opCtx->lockState()->isW());
+void CollectionCatalog::onOpenCatalog() {
invariant(_shadowCatalog);
_shadowCatalog.reset();
++_epoch;