loolwsd/LOOLSession.cpp | 3 ++- loolwsd/LOOLSession.hpp | 3 +++ loolwsd/MasterProcessSession.cpp | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-)
New commits: commit 7fc04b6e71a3666a059d3db85f655d515d49bf56 Author: Henry Castro <hcas...@collabora.com> Date: Mon Dec 28 17:05:01 2015 -0400 loolwsd: stop dispatch child when closed websocket prison diff --git a/loolwsd/LOOLSession.cpp b/loolwsd/LOOLSession.cpp index 7538931..52bb451 100644 --- a/loolwsd/LOOLSession.cpp +++ b/loolwsd/LOOLSession.cpp @@ -89,7 +89,8 @@ LOOLSession::LOOLSession(const std::string& id, const Kind kind, _kindString(kind == Kind::ToClient ? "ToClient" : kind == Kind::ToMaster ? "ToMaster" : "ToPrisoner"), _ws(ws), - _docURL("") + _docURL(""), + _bShutdown(false) { setId(id); } diff --git a/loolwsd/LOOLSession.hpp b/loolwsd/LOOLSession.hpp index 85221ed..22a308f 100644 --- a/loolwsd/LOOLSession.hpp +++ b/loolwsd/LOOLSession.hpp @@ -97,6 +97,9 @@ protected: /// Document options: a JSON string, containing options (rendering, also possibly load in the future). std::string _docOptions; + // Flag to stop dispatch chid messages when websocket is shutting down + bool _bShutdown; + private: virtual bool _handleInput(const char *buffer, int length) = 0; diff --git a/loolwsd/MasterProcessSession.cpp b/loolwsd/MasterProcessSession.cpp index 5f00812..5537ca6 100644 --- a/loolwsd/MasterProcessSession.cpp +++ b/loolwsd/MasterProcessSession.cpp @@ -72,6 +72,7 @@ MasterProcessSession::~MasterProcessSession() else if (_kind == Kind::ToPrisoner && peer) { + peer->_bShutdown = true; Util::shutdownWebSocket(*(peer->_ws)); } } @@ -559,6 +560,9 @@ void MasterProcessSession::dispatchChild() short nRequest = 3; bool bFound = false; + if (_bShutdown) + return; + // Wait until the child has connected with Master. std::shared_ptr<MasterProcessSession> childSession; std::unique_lock<std::mutex> lock(_availableChildSessionMutex); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits