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;
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);
#include "remote/apiuser.hpp"
#include "base/tlsstream.hpp"
#include "base/workqueue.hpp"
+#include <boost/thread/recursive_mutex.hpp>
namespace icinga
{
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;