loolwsd/DocumentBroker.cpp | 3 ++- loolwsd/DocumentBroker.hpp | 16 ++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-)
New commits: commit f0c3365f9f0ea454eccb9d26fd5ffcbdec3b2a19 Author: Ashod Nakashian <ashod.nakash...@collabora.co.uk> Date: Sat Oct 22 19:10:07 2016 -0400 loolwsd: improve ChildProcess cleanup Change-Id: I9852f04021097800d5ab0ce775f26fada5f3c8e7 Reviewed-on: https://gerrit.libreoffice.org/30207 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/loolwsd/DocumentBroker.cpp b/loolwsd/DocumentBroker.cpp index e64dfff..850d570 100644 --- a/loolwsd/DocumentBroker.cpp +++ b/loolwsd/DocumentBroker.cpp @@ -60,8 +60,9 @@ void ChildProcess::socketProcessor() // Notify the broker that we're done. auto docBroker = _docBroker.lock(); - if (docBroker) + if (docBroker && !_stop) { + // No need to notify if asked to stop. docBroker->childSocketTerminated(); } } diff --git a/loolwsd/DocumentBroker.hpp b/loolwsd/DocumentBroker.hpp index 170613c..39bc19a 100644 --- a/loolwsd/DocumentBroker.hpp +++ b/loolwsd/DocumentBroker.hpp @@ -55,11 +55,8 @@ public: ~ChildProcess() { - if (_pid > 0) - { - Log::info("~ChildProcess dtor [" + std::to_string(_pid) + "]."); - close(false); - } + Log::debug("~ChildProcess dtor [" + std::to_string(_pid) + "]."); + close(true); } void setDocumentBroker(const std::shared_ptr<DocumentBroker>& docBroker) @@ -68,11 +65,18 @@ public: _docBroker = docBroker; } + void stop() + { + Log::debug("Stopping ChildProcess [" + std::to_string(_pid) + "]"); + _stop = true; + } + void close(const bool rude) { try { - _stop = true; + Log::debug("Closing ChildProcess [" + std::to_string(_pid) + "]."); + stop(); IoUtil::shutdownWebSocket(_ws); if (_thread.joinable()) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits