diff options
author | Vishnu Kaushik <vishnu.kaushik@mongodb.com> | 2020-10-16 14:18:16 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-10-16 15:12:19 +0000 |
commit | 69067887cb295671a21c359776e047e6e562af00 (patch) | |
tree | 6e0d8399a97448725e51b0bbd9b3ebf4d8601707 | |
parent | 401d1f1a28dd94bd96de9dc733cd61184661ec15 (diff) | |
download | mongo-69067887cb295671a21c359776e047e6e562af00.tar.gz |
SERVER-51389 std::move initial chunks and zones, pass ChunksAndZones by value instead of by reference
-rw-r--r-- | src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/s/resharding/resharding_coordinator_service.cpp | 11 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp b/src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp index d24eaba115d..1f4e3fec8df 100644 --- a/src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp +++ b/src/mongo/db/s/config/configsvr_reshard_collection_cmd.cpp @@ -207,7 +207,7 @@ public: auto instance = ReshardingCoordinatorService::ReshardingCoordinator::getOrCreate( opCtx, service, coordinatorDoc.toBSON()); - instance->setInitialChunksAndZones(initialChunks, newZones); + instance->setInitialChunksAndZones(std::move(initialChunks), std::move(newZones)); // This promise will currently be falsely fulfilled by a call to interrupt() inside // the ReshardingCoordinatorService. This is to enable jsTests to pass while code diff --git a/src/mongo/db/s/resharding/resharding_coordinator_service.cpp b/src/mongo/db/s/resharding/resharding_coordinator_service.cpp index b0d30953211..9860c00e175 100644 --- a/src/mongo/db/s/resharding/resharding_coordinator_service.cpp +++ b/src/mongo/db/s/resharding/resharding_coordinator_service.cpp @@ -422,7 +422,8 @@ void persistInitialStateAndCatalogUpdates(OperationContext* opCtx, opCtx, coordinatorDoc, chunkVersion, collation, txnNumber); // Insert new initial chunk and tag documents - insertChunkAndTagDocsForTempNss(opCtx, initialChunks, newZones, txnNumber); + insertChunkAndTagDocsForTempNss( + opCtx, std::move(initialChunks), std::move(newZones), txnNumber); // Commit the transaction ShardingCatalogManager::get(opCtx)->commitTxnForConfigDocument(opCtx, txnNumber); @@ -623,9 +624,9 @@ ExecutorFuture<void> ReshardingCoordinatorService::ReshardingCoordinator::_init( return _initialChunksAndZonesPromise.getFuture() .thenRunOn(**executor) - .then([this](const ChunksAndZones& initialChunksAndZones) { - auto initialChunks = initialChunksAndZones.initialChunks; - auto newZones = initialChunksAndZones.newZones; + .then([this](ChunksAndZones initialChunksAndZones) { + auto initialChunks = std::move(initialChunksAndZones.initialChunks); + auto newZones = std::move(initialChunksAndZones.newZones); // Create state document that will be written to disk and afterward set to the in-memory // _coordinatorDoc @@ -634,7 +635,7 @@ ExecutorFuture<void> ReshardingCoordinatorService::ReshardingCoordinator::_init( auto opCtx = cc().makeOperationContext(); resharding::persistInitialStateAndCatalogUpdates( - opCtx.get(), updatedCoordinatorDoc, initialChunks, newZones); + opCtx.get(), updatedCoordinatorDoc, std::move(initialChunks), std::move(newZones)); invariant(_coordinatorDoc.getState() == CoordinatorStateEnum::kInitializing); _coordinatorDoc = updatedCoordinatorDoc; |