diff options
author | Reo Kimura <reo.kimura@mongodb.com> | 2020-07-22 03:03:43 +0000 |
---|---|---|
committer | Reo Kimura <reo.kimura@mongodb.com> | 2020-08-07 18:51:05 +0000 |
commit | 120b213146dc93d8777371650d082dd15b1a1c0b (patch) | |
tree | e9c961f52fc308429d188bbb5e61dffbd01d1e21 /src/mongo/transport/service_executor_synchronous.cpp | |
parent | 9238911d0a46f26419ecdbec4293457b9e1a891d (diff) | |
download | mongo-120b213146dc93d8777371650d082dd15b1a1c0b.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.cpp | 11 |
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"}; |