]> granicus.if.org Git - icinga2/commitdiff
Fix deadlock in ApiListener::RelayMessage
authorGunnar Beutner <gunnar@beutner.name>
Wed, 2 Sep 2015 05:39:40 +0000 (07:39 +0200)
committerGunnar Beutner <gunnar@beutner.name>
Wed, 2 Sep 2015 05:46:30 +0000 (07:46 +0200)
fixes #10002

lib/remote/apilistener.cpp
lib/remote/jsonrpcconnection.cpp

index ed53f24788b7f3418e68417219bf328acda64b9b..cb1b6c3f1c092d94d3f053c0a88f98ef11bad2e5 100644 (file)
@@ -510,7 +510,7 @@ void ApiListener::ApiTimerHandler(void)
 
 void ApiListener::RelayMessage(const MessageOrigin::Ptr& origin, const ConfigObject::Ptr& secobj, const Dictionary::Ptr& message, bool log)
 {
-       m_RelayQueue.Enqueue(boost::bind(&ApiListener::SyncRelayMessage, this, origin, secobj, message, log));
+       m_RelayQueue.Enqueue(boost::bind(&ApiListener::SyncRelayMessage, this, origin, secobj, message, log), true);
 }
 
 void ApiListener::PersistMessage(const Dictionary::Ptr& message, const ConfigObject::Ptr& secobj)
index bb62c4414506ab2b801379db7c33865c5663f816..6d67e10e6253647fe5fd69242aa58109abebb3fa 100644 (file)
@@ -90,7 +90,7 @@ ConnectionRole JsonRpcConnection::GetRole(void) const
 
 void JsonRpcConnection::SendMessage(const Dictionary::Ptr& message)
 {
-       m_WriteQueue.Enqueue(boost::bind(&JsonRpcConnection::SendMessageSync, JsonRpcConnection::Ptr(this), message));
+       m_WriteQueue.Enqueue(boost::bind(&JsonRpcConnection::SendMessageSync, JsonRpcConnection::Ptr(this), message), true);
 }
 
 void JsonRpcConnection::SendMessageSync(const Dictionary::Ptr& message)