summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/collection_bulk_loader_impl.cpp
diff options
context:
space:
mode:
authorBilly Donahue <billy.donahue@mongodb.com>2019-01-09 17:32:12 -0500
committerBilly Donahue <billy.donahue@mongodb.com>2019-01-11 10:50:23 -0500
commitbbf28648de0d8695c502e13922a8d9e5ca1b51e8 (patch)
tree6382810d03fb698d9b2d49f488be90e604324811 /src/mongo/db/repl/collection_bulk_loader_impl.cpp
parent17514947cc816df2500aa0e919506586d4d56aa0 (diff)
downloadmongo-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.cpp16
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 (...) {