Index: src/libchcore/TWriteBufferQueueWrapper.cpp =================================================================== diff -u -N -ra1f5b3d99f2f175b102d81379698ea1f08e42cce -r10d42e85d810f6da082cb2ce4415dcb72903410e --- src/libchcore/TWriteBufferQueueWrapper.cpp (.../TWriteBufferQueueWrapper.cpp) (revision a1f5b3d99f2f175b102d81379698ea1f08e42cce) +++ src/libchcore/TWriteBufferQueueWrapper.cpp (.../TWriteBufferQueueWrapper.cpp) (revision 10d42e85d810f6da082cb2ce4415dcb72903410e) @@ -32,7 +32,7 @@ UpdateHasBuffers(); - m_emptyBuffersQueueConnector = m_spDataQueue->GetNotifier().connect(boost::bind(&TWriteBufferQueueWrapper::UpdateHasBuffers, this)); + m_emptyBuffersQueueConnector = m_spDataQueue->GetNotifier().connect(boost::bind(&TWriteBufferQueueWrapper::UpdateHasBuffers, this, _1)); } TWriteBufferQueueWrapper::~TWriteBufferQueueWrapper() @@ -77,11 +77,6 @@ return m_spDataQueue->Pop(); } - bool TWriteBufferQueueWrapper::IsBufferReady() const - { - return !m_tRetryBuffers.empty() || m_spDataQueue->HasPoppableBuffer(); - } - size_t TWriteBufferQueueWrapper::GetCount() const { return m_spDataQueue->GetCount(); @@ -92,8 +87,14 @@ return m_eventHasBuffers.Handle(); } + void TWriteBufferQueueWrapper::UpdateHasBuffers(bool bDataQueueHasPoppableBuffer) + { + bool bIsReady = bDataQueueHasPoppableBuffer || !m_tRetryBuffers.empty(); + m_eventHasBuffers.SetEvent(bIsReady); + } + void TWriteBufferQueueWrapper::UpdateHasBuffers() { - m_eventHasBuffers.SetEvent(IsBufferReady()); + UpdateHasBuffers(m_spDataQueue->HasPoppableBuffer()); } }