From 4491473110a95fe33b18334e828197974b141312 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 15 Jan 2019 19:37:10 +0300 Subject: ICQ10: fixes problem with multiple polling threads also might fix #1769 --- protocols/Icq10/src/server.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/protocols/Icq10/src/server.cpp b/protocols/Icq10/src/server.cpp index adf862eedb..4c440b9670 100644 --- a/protocols/Icq10/src/server.cpp +++ b/protocols/Icq10/src/server.cpp @@ -372,11 +372,11 @@ void CIcqProto::ShutdownSession() if (m_hWorkerThread) SetEvent(m_evRequestsQueue); + OnLoggedOut(); + for (auto &it : m_ConnPool) if (it.s) Netlib_Shutdown(it.s); - - OnLoggedOut(); } ///////////////////////////////////////////////////////////////////////////////////////// @@ -540,7 +540,8 @@ void CIcqProto::OnStartSession(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest*) for (auto &it : data["events"]) ProcessEvent(it); - m_hPollThread = ForkThreadEx(&CIcqProto::PollThread, 0, 0); + if (m_hPollThread == nullptr) + m_hPollThread = ForkThreadEx(&CIcqProto::PollThread, 0, 0); } void CIcqProto::OnReceiveAvatar(NETLIBHTTPREQUEST *pReply, AsyncHttpRequest *pReq) -- cgit v1.2.3