Index: src/libchcore/TReadBufferQueueWrapper.h =================================================================== diff -u -N -r6c41e7b3cf7711c6f5027c0c0154013f50f08e7b -ra1f5b3d99f2f175b102d81379698ea1f08e42cce --- src/libchcore/TReadBufferQueueWrapper.h (.../TReadBufferQueueWrapper.h) (revision 6c41e7b3cf7711c6f5027c0c0154013f50f08e7b) +++ src/libchcore/TReadBufferQueueWrapper.h (.../TReadBufferQueueWrapper.h) (revision a1f5b3d99f2f175b102d81379698ea1f08e42cce) @@ -36,7 +36,9 @@ TReadBufferQueueWrapper(const TBufferListPtr& spUnorderedQueue, unsigned long long ullNextReadPosition, DWORD dwChunkSize); ~TReadBufferQueueWrapper(); - void Push(TOverlappedDataBuffer* pBuffer, bool bKeepPosition); + void Push(TOverlappedDataBuffer* pBuffer); + void PushEmpty(TOverlappedDataBuffer* pBuffer); + TOverlappedDataBuffer* Pop(); size_t GetCount() const; @@ -45,18 +47,17 @@ bool IsDataSourceFinished() const; HANDLE GetHasBuffersEvent() const; - void ReleaseBuffers(const TBufferListPtr& spBuffers); + void ReleaseBuffers(); private: bool IsBufferReady() const; void UpdateHasBuffers(); - void UpdateHasBuffers(bool bAdded); private: - TBufferListPtr m_spUnorderedQueue; // external queue of buffers to use + TBufferListPtr m_spEmptyBuffers; // external queue of buffers to use boost::signals2::connection m_emptyBuffersQueueConnector; - TSimpleOrderedBufferQueue m_tClaimedQueue; // internal queue of claimed buffers + TSimpleOrderedBufferQueue m_tRetryBuffers; // internal queue of claimed buffers TEvent m_eventHasBuffers;