diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2019-01-09 17:32:12 -0500 |
---|---|---|
committer | Billy Donahue <billy.donahue@mongodb.com> | 2019-01-11 10:50:23 -0500 |
commit | bbf28648de0d8695c502e13922a8d9e5ca1b51e8 (patch) | |
tree | 6382810d03fb698d9b2d49f488be90e604324811 /src/mongo/db/repl/collection_bulk_loader_impl.cpp | |
parent | 17514947cc816df2500aa0e919506586d4d56aa0 (diff) | |
download | mongo-bbf28648de0d8695c502e13922a8d9e5ca1b51e8.tar.gz |
SERVER-30711: scope_guard rewrite, to avoid -Werror=noexcept-type
Macro ON_BLOCK_EXIT(...) now takes a single callable,
Some renames:
Dismias -> dismiss
MakeGuard => makeGuard
Diffstat (limited to 'src/mongo/db/repl/collection_bulk_loader_impl.cpp')
-rw-r--r-- | src/mongo/db/repl/collection_bulk_loader_impl.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/mongo/db/repl/collection_bulk_loader_impl.cpp b/src/mongo/db/repl/collection_bulk_loader_impl.cpp index 9b2e09dc08c..b529bfc33be 100644 --- a/src/mongo/db/repl/collection_bulk_loader_impl.cpp +++ b/src/mongo/db/repl/collection_bulk_loader_impl.cpp @@ -109,7 +109,7 @@ Status CollectionBulkLoaderImpl::init(const std::vector<BSONObj>& secondaryIndex Status CollectionBulkLoaderImpl::insertDocuments(const std::vector<BSONObj>::const_iterator begin, const std::vector<BSONObj>::const_iterator end) { int count = 0; - return _runTaskReleaseResourcesOnFailure([&]() -> Status { + return _runTaskReleaseResourcesOnFailure([&] { UnreplicatedWritesBlock uwb(_opCtx.get()); for (auto iter = begin; iter != end; ++iter) { @@ -154,7 +154,7 @@ Status CollectionBulkLoaderImpl::insertDocuments(const std::vector<BSONObj>::con } Status CollectionBulkLoaderImpl::commit() { - return _runTaskReleaseResourcesOnFailure([this]() -> Status { + return _runTaskReleaseResourcesOnFailure([&] { _stats.startBuildingIndexes = Date_t::now(); LOG(2) << "Creating indexes for ns: " << _nss.ns(); UnreplicatedWritesBlock uwb(_opCtx.get()); @@ -247,17 +247,13 @@ void CollectionBulkLoaderImpl::_releaseResources() { } template <typename F> -Status CollectionBulkLoaderImpl::_runTaskReleaseResourcesOnFailure(F task) noexcept { - +Status CollectionBulkLoaderImpl::_runTaskReleaseResourcesOnFailure(const F& task) noexcept { AlternativeClientRegion acr(_client); - ScopeGuard guard = MakeGuard(&CollectionBulkLoaderImpl::_releaseResources, this); + auto guard = makeGuard([this] { _releaseResources(); }); try { - const auto status = [&task]() noexcept { - return task(); - } - (); + const auto status = task(); if (status.isOK()) { - guard.Dismiss(); + guard.dismiss(); } return status; } catch (...) { |