summaryrefslogtreecommitdiff
path: root/src/mongo/executor/network_interface_thread_pool.cpp
diff options
context:
space:
mode:
authorBen Caimano <ben.caimano@10gen.com>2019-03-05 13:40:25 -0500
committerBen Caimano <ben.caimano@10gen.com>2019-04-05 14:28:40 -0400
commita08bac3e29cd9ec3d030623894928e80c2f572dd (patch)
treea82304a07e67909a8d8a40ec08959f4f1c8ccace /src/mongo/executor/network_interface_thread_pool.cpp
parentb1aa248f71ffb197c6576fd90ff7571ee9a96c3f (diff)
downloadmongo-a08bac3e29cd9ec3d030623894928e80c2f572dd.tar.gz
SERVER-39965 OutOfLineExecutor Tasks are now unique_function(Status)
Diffstat (limited to 'src/mongo/executor/network_interface_thread_pool.cpp')
-rw-r--r--src/mongo/executor/network_interface_thread_pool.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mongo/executor/network_interface_thread_pool.cpp b/src/mongo/executor/network_interface_thread_pool.cpp
index 0fa5ed7632e..787bd0a6dac 100644
--- a/src/mongo/executor/network_interface_thread_pool.cpp
+++ b/src/mongo/executor/network_interface_thread_pool.cpp
@@ -105,17 +105,18 @@ void NetworkInterfaceThreadPool::join() {
lk, [&] { return _tasks.empty() && (_consumeState == ConsumeState::kNeutral); });
}
-Status NetworkInterfaceThreadPool::schedule(Task task) {
+void NetworkInterfaceThreadPool::schedule(Task task) {
stdx::unique_lock<stdx::mutex> lk(_mutex);
if (_inShutdown) {
- return {ErrorCodes::ShutdownInProgress, "Shutdown in progress"};
+ lk.unlock();
+ task({ErrorCodes::ShutdownInProgress, "Shutdown in progress"});
+ return;
}
+
_tasks.emplace_back(std::move(task));
if (_started)
_consumeTasks(std::move(lk));
-
- return Status::OK();
}
/**
@@ -162,7 +163,7 @@ void NetworkInterfaceThreadPool::_consumeTasksInline(stdx::unique_lock<stdx::mut
const auto lkGuard = makeGuard([&] { lk.lock(); });
for (auto&& task : tasks) {
- task();
+ task(Status::OK());
}
tasks.clear();