summaryrefslogtreecommitdiff
path: root/src/mongo/transport/service_executor_synchronous.cpp
diff options
context:
space:
mode:
authorReo Kimura <reo.kimura@mongodb.com>2020-07-22 03:03:43 +0000
committerReo Kimura <reo.kimura@mongodb.com>2020-08-07 18:51:05 +0000
commit120b213146dc93d8777371650d082dd15b1a1c0b (patch)
treee9c961f52fc308429d188bbb5e61dffbd01d1e21 /src/mongo/transport/service_executor_synchronous.cpp
parent9238911d0a46f26419ecdbec4293457b9e1a891d (diff)
downloadmongo-server-49072.tar.gz
SERVER-49072 Created SE decorations, rewrote SEPI start/shutdown of SEsserver-49072
Diffstat (limited to 'src/mongo/transport/service_executor_synchronous.cpp')
-rw-r--r--src/mongo/transport/service_executor_synchronous.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/transport/service_executor_synchronous.cpp b/src/mongo/transport/service_executor_synchronous.cpp
index 10cc0ad3cce..d58a917841e 100644
--- a/src/mongo/transport/service_executor_synchronous.cpp
+++ b/src/mongo/transport/service_executor_synchronous.cpp
@@ -78,6 +78,17 @@ Status ServiceExecutorSynchronous::shutdown(Milliseconds timeout) {
"passthrough executor couldn't shutdown all worker threads within time limit.");
}
+const auto getServiceExecutorSynchronous =
+ ServiceContext::declareDecoration<std::unique_ptr<ServiceExecutorSynchronous>>();
+
+ServiceExecutorSynchronous* ServiceExecutorSynchronous::get(ServiceContext* ctx) {
+ auto& ref = getServiceExecutorSynchronous(ctx);
+ if (!ref) {
+ ref = std::make_unique<ServiceExecutorSynchronous>();
+ }
+ return ref.get();
+}
+
Status ServiceExecutorSynchronous::schedule(Task task, ScheduleFlags flags) {
if (!_stillRunning.load()) {
return Status{ErrorCodes::ShutdownInProgress, "Executor is not running"};