From: Gunnar Beutner Date: Tue, 1 Jul 2014 06:57:54 +0000 (+0200) Subject: Revert "Fix deadlock in ApiClient::SendMessage" X-Git-Tag: v2.0.1~16 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1723d97ed098e6cd33feeca3f22b1c5583a2e53d;p=icinga2 Revert "Fix deadlock in ApiClient::SendMessage" This reverts commit 0ac6e97f329b551882f925a009e6efe498ec45c3. --- diff --git a/lib/base/tlsstream.cpp b/lib/base/tlsstream.cpp index e8ec0e9d4..4d8883a62 100644 --- a/lib/base/tlsstream.cpp +++ b/lib/base/tlsstream.cpp @@ -20,7 +20,6 @@ #include "base/tlsstream.hpp" #include "base/utility.hpp" #include "base/exception.hpp" -#include "base/objectlock.hpp" #include "base/logger_fwd.hpp" #include #include @@ -184,32 +183,6 @@ size_t TlsStream::Read(void *buffer, size_t count) } void TlsStream::Write(const void *buffer, size_t count) -{ - { - ObjectLock olock(&m_SendQ); - m_SendQ.Write(buffer, count); - } - - Utility::QueueAsyncCallback(boost::bind(&TlsStream::FinishAsyncWrite, this)); -} - -void TlsStream::FinishAsyncWrite(void) -{ - boost::mutex::scoped_lock lock(m_WriteMutex); - - for (;;) { - ObjectLock olock(&m_SendQ); - char buffer[1024]; - size_t count = m_SendQ.Read(buffer, sizeof(buffer)); - - if (count == 0) - break; /* No more data in the sendq */ - - WriteSync(buffer, count); - } -} - -void TlsStream::WriteSync(const void *buffer, size_t count) { size_t left = count; diff --git a/lib/base/tlsstream.hpp b/lib/base/tlsstream.hpp index 647e199b6..0d26656d0 100644 --- a/lib/base/tlsstream.hpp +++ b/lib/base/tlsstream.hpp @@ -23,7 +23,6 @@ #include "base/i2-base.hpp" #include "base/socket.hpp" #include "base/stream.hpp" -#include "base/fifo.hpp" #include "base/tlsutility.hpp" namespace icinga @@ -50,7 +49,6 @@ public: virtual size_t Read(void *buffer, size_t count); virtual void Write(const void *buffer, size_t count); - void WriteSync(const void *buffer, size_t count); virtual bool IsEof(void) const; @@ -58,9 +56,6 @@ private: boost::mutex m_SSLLock; shared_ptr m_SSL; BIO *m_BIO; - - boost::mutex m_WriteMutex; - FIFO m_SendQ; Socket::Ptr m_Socket; ConnectionRole m_Role; @@ -69,8 +64,6 @@ private: static bool m_SSLIndexInitialized; static void NullCertificateDeleter(X509 *certificate); - - void FinishAsyncWrite(void); }; }