From 6455c51777731df278c0f6d51cc4fcd505cd02d4 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Mon, 4 Aug 2014 09:50:47 +0200 Subject: [PATCH] Fix a potential deadlock in ApiClient::Disconnect refs #6724 --- lib/remote/apiclient.cpp | 5 +++++ lib/remote/apiclient.hpp | 1 + 2 files changed, 6 insertions(+) diff --git a/lib/remote/apiclient.cpp b/lib/remote/apiclient.cpp index 3c6cea81e..813ed0b0d 100644 --- a/lib/remote/apiclient.cpp +++ b/lib/remote/apiclient.cpp @@ -94,6 +94,11 @@ void ApiClient::SendMessageSync(const Dictionary::Ptr& message) } void ApiClient::Disconnect(void) +{ + Utility::QueueAsyncCallback(boost::bind(&ApiClient::DisconnectSync, this)); +} + +void ApiClient::DisconnectSync(void) { Log(LogWarning, "ApiClient", "API client disconnected for identity '" + m_Identity + "'"); diff --git a/lib/remote/apiclient.hpp b/lib/remote/apiclient.hpp index b6d87e068..6f1f68074 100644 --- a/lib/remote/apiclient.hpp +++ b/lib/remote/apiclient.hpp @@ -55,6 +55,7 @@ public: ConnectionRole GetRole(void) const; void Disconnect(void); + void DisconnectSync(void); void SendMessage(const Dictionary::Ptr& request); -- 2.40.0