loolwsd/LOOLWSD.cpp | 6 +++--- loolwsd/common/SigUtil.cpp | 10 +++++++++- loolwsd/common/SigUtil.hpp | 6 +++--- 3 files changed, 15 insertions(+), 7 deletions(-)
New commits: commit efe6b96738fb1adcc9fac9248e1de0a3c4ae970a Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sat Nov 19 11:35:09 2016 -0500 loolwsd: privatize ShutdownFlag and add public getter Change-Id: I129fa8dda907758730bb494d1da950f48c61abbc Reviewed-on: https://gerrit.libreoffice.org/31004 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/LOOLWSD.cpp b/loolwsd/LOOLWSD.cpp index 2cdf5d4..1f8644f 100644 --- a/loolwsd/LOOLWSD.cpp +++ b/loolwsd/LOOLWSD.cpp @@ -886,7 +886,7 @@ private: return session->handleInput(payload.data(), payload.size()); }, [&session]() { session->closeFrame(); }, - []() { return TerminationFlag || ShutdownFlag; }); + []() { return TerminationFlag || SigUtil::isShuttingDown(); }); // Connection terminated. Destroy session. LOG_DBG("Client session [" << id << "] terminated. Cleaning up."); @@ -1968,7 +1968,7 @@ int LOOLWSD::main(const std::vector<std::string>& /*args*/) time_t last30SecCheck = time(nullptr); int status = 0; - while (!TerminationFlag && !ShutdownFlag) + while (!TerminationFlag && !SigUtil::isShuttingDown()) { UnitWSD::get().invokeTest(); if (TerminationFlag || SigUtil::handleShutdownRequest()) @@ -2077,7 +2077,7 @@ int LOOLWSD::main(const std::vector<std::string>& /*args*/) // Stop the listening to new connections // and wait until sockets close. LOG_INF("Stopping server socket listening. ShutdownFlag: " << - ShutdownFlag << ", TerminationFlag: " << TerminationFlag); + SigUtil::isShuttingDown() << ", TerminationFlag: " << TerminationFlag); srv.stop(); srv2.stop(); diff --git a/loolwsd/common/SigUtil.cpp b/loolwsd/common/SigUtil.cpp index db29de5..02443df 100644 --- a/loolwsd/common/SigUtil.cpp +++ b/loolwsd/common/SigUtil.cpp @@ -51,9 +51,12 @@ #include "Util.hpp" std::atomic<bool> TerminationFlag(false); -std::atomic<bool> ShutdownFlag(false); std::mutex SigHandlerTrap; +/// Flag to shutdown the server. +std::atomic<bool> ShutdownFlag; + +/// Flag to request WSD to notify clients and shutdown. static std::atomic<bool> ShutdownRequestFlag(false); namespace SigUtil @@ -262,6 +265,11 @@ namespace SigUtil return false; } + bool isShuttingDown() + { + return ShutdownFlag; + } + bool killChild(const int pid) { LOG_DBG("Killing PID: " << pid); diff --git a/loolwsd/common/SigUtil.hpp b/loolwsd/common/SigUtil.hpp index a17d808..a478161 100644 --- a/loolwsd/common/SigUtil.hpp +++ b/loolwsd/common/SigUtil.hpp @@ -16,9 +16,6 @@ /// Flag to stop pump loops. extern std::atomic<bool> TerminationFlag; -/// Flag to shutdown the server. -extern std::atomic<bool> ShutdownFlag; - /// Mutex to trap signal handler, if any, /// and prevent _Exit while collecting backtrace. extern std::mutex SigHandlerTrap; @@ -49,6 +46,9 @@ namespace SigUtil /// Returns true if shutdown is requested. bool handleShutdownRequest(); + /// Returns true if Shutdown is in progress. + bool isShuttingDown(); + /// Kills a child process and returns true when /// child pid is removed from the process table /// after a certain (short) timeout. _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits