diff options
author | Ben Caimano <ben.caimano@10gen.com> | 2019-03-05 13:40:25 -0500 |
---|---|---|
committer | Ben Caimano <ben.caimano@10gen.com> | 2019-04-05 14:28:40 -0400 |
commit | a08bac3e29cd9ec3d030623894928e80c2f572dd (patch) | |
tree | a82304a07e67909a8d8a40ec08959f4f1c8ccace /src/mongo/executor/network_interface_thread_pool.cpp | |
parent | b1aa248f71ffb197c6576fd90ff7571ee9a96c3f (diff) | |
download | mongo-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.cpp | 11 |
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(); |