]> granicus.if.org Git - icinga2/commitdiff
Make HttpServerConnection#m_DataHandlerMutex a boost::recursive_mutex 6429/head
authorAlexander A. Klimov <alexander.klimov@icinga.com>
Mon, 9 Jul 2018 12:40:32 +0000 (14:40 +0200)
committerAlexander A. Klimov <alexander.klimov@icinga.com>
Mon, 9 Jul 2018 12:40:32 +0000 (14:40 +0200)
refs #6428

lib/remote/httpserverconnection.cpp
lib/remote/httpserverconnection.hpp

index 6e8ea1c5839143de926ca29664fdefb7f98f019e..497ce7b83c447f8f4c95b58943b420facbbaba68 100644 (file)
@@ -77,7 +77,7 @@ TlsStream::Ptr HttpServerConnection::GetStream() const
 
 void HttpServerConnection::Disconnect()
 {
-       boost::mutex::scoped_try_lock lock(m_DataHandlerMutex);
+       boost::recursive_mutex::scoped_try_lock lock(m_DataHandlerMutex);
        if (!lock.owns_lock()) {
                Log(LogInformation, "HttpServerConnection", "Unable to disconnect Http client, I/O thread busy");
                return;
@@ -342,7 +342,7 @@ void HttpServerConnection::DataAvailableHandler()
        bool close = false;
 
        if (!m_Stream->IsEof()) {
-               boost::mutex::scoped_lock lock(m_DataHandlerMutex);
+               boost::recursive_mutex::scoped_lock lock(m_DataHandlerMutex);
 
                m_Stream->SetCorked(true);
 
index 5f959b8a01313158c0364db6cd4772953960951f..6d1c3bd46871c1ee7df178005c165c98ed68903b 100644 (file)
@@ -25,6 +25,7 @@
 #include "remote/apiuser.hpp"
 #include "base/tlsstream.hpp"
 #include "base/workqueue.hpp"
+#include <boost/thread/recursive_mutex.hpp>
 
 namespace icinga
 {
@@ -55,7 +56,7 @@ private:
        TlsStream::Ptr m_Stream;
        double m_Seen;
        HttpRequest m_CurrentRequest;
-       boost::mutex m_DataHandlerMutex;
+       boost::recursive_mutex m_DataHandlerMutex;
        WorkQueue m_RequestQueue;
        int m_PendingRequests;