From a7dc3e6c404a4f69ccc17aa2baa3cd24c87cf65b Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Mon, 9 Aug 2021 21:09:36 +0200 Subject: Changed logic so that the shutdown monitoring thread is spun up in non-test modes as well --- zenserver/zenserver.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'zenserver/zenserver.cpp') diff --git a/zenserver/zenserver.cpp b/zenserver/zenserver.cpp index 56b6c793f..eb8df2b23 100644 --- a/zenserver/zenserver.cpp +++ b/zenserver/zenserver.cpp @@ -308,6 +308,15 @@ main(int argc, char* argv[]) Server.SetTestMode(GlobalOptions.IsTest); Server.Initialize(ServiceConfig, GlobalOptions.BasePort, GlobalOptions.OwnerPid); + // Monitor shutdown signals + + ShutdownThread.reset(new std::thread{[&] { + spdlog::info("shutdown monitor thread waiting for shutdown signal '{}'", ShutdownEventName); + ShutdownEvent->Wait(); + spdlog::info("shutdown signal received"); + Server.RequestExit(0); + }}); + // If we have a parent process, establish the mechanisms we need // to be able to communicate with the parent @@ -315,23 +324,13 @@ main(int argc, char* argv[]) { zen::NamedEvent ParentEvent{GlobalOptions.ChildId}; ParentEvent.Set(); - - ShutdownThread.reset(new std::thread{[&] { - spdlog::info("shutdown monitor thread waiting for shutdown signal '{}'", ShutdownEventName); - ShutdownEvent->Wait(); - spdlog::info("shutdown signal received"); - Server.RequestExit(0); - }}); } Server.Run(); Server.Cleanup(); - if (ShutdownEvent) - { - ShutdownEvent->Set(); - ShutdownThread->join(); - } + ShutdownEvent->Set(); + ShutdownThread->join(); } catch (std::exception& e) { -- cgit v1.2.3