summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/collection_bulk_loader_impl.cpp
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2016-07-27 22:04:38 -0400
committerBenety Goh <benety@mongodb.com>2016-07-28 14:18:32 -0400
commit805d8fa04cb14760db93a146f8b371f0d3f70507 (patch)
tree6cfc6bab9e5497d22702b830e58dd6f147029e30 /src/mongo/db/repl/collection_bulk_loader_impl.cpp
parentda26506b04372d8881288788c9eaa85f34fee671 (diff)
downloadmongo-805d8fa04cb14760db93a146f8b371f0d3f70507.tar.gz
SERVER-25084 collection bulk loader takes ownership of thread pool for task runner
Diffstat (limited to 'src/mongo/db/repl/collection_bulk_loader_impl.cpp')
-rw-r--r--src/mongo/db/repl/collection_bulk_loader_impl.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mongo/db/repl/collection_bulk_loader_impl.cpp b/src/mongo/db/repl/collection_bulk_loader_impl.cpp
index 2e83e4389ce..cf31132e024 100644
--- a/src/mongo/db/repl/collection_bulk_loader_impl.cpp
+++ b/src/mongo/db/repl/collection_bulk_loader_impl.cpp
@@ -53,10 +53,12 @@ namespace repl {
CollectionBulkLoaderImpl::CollectionBulkLoaderImpl(OperationContext* txn,
Collection* coll,
const BSONObj idIndexSpec,
+ std::unique_ptr<OldThreadPool> threadPool,
std::unique_ptr<TaskRunner> runner,
std::unique_ptr<AutoGetOrCreateDb> autoDb,
std::unique_ptr<AutoGetCollection> autoColl)
- : _runner(std::move(runner)),
+ : _threadPool(std::move(threadPool)),
+ _runner(std::move(runner)),
_autoColl(std::move(autoColl)),
_autoDB(std::move(autoDb)),
_txn(txn),
@@ -75,7 +77,11 @@ CollectionBulkLoaderImpl::CollectionBulkLoaderImpl(OperationContext* txn,
}
CollectionBulkLoaderImpl::~CollectionBulkLoaderImpl() {
- DESTRUCTOR_GUARD(_runner->cancel();)
+ DESTRUCTOR_GUARD({
+ _runner->cancel();
+ _runner->join();
+ _threadPool->join();
+ })
}
Status CollectionBulkLoaderImpl::init(OperationContext* txn,