Index: src/libchcore/TOverlappedReaderWriterFB.cpp =================================================================== diff -u -N -r980c1a0de537813728871676200a0960410b11fb -rc0d9a798f9fbbeda239b84721ed864f9727e1ddc --- src/libchcore/TOverlappedReaderWriterFB.cpp (.../TOverlappedReaderWriterFB.cpp) (revision 980c1a0de537813728871676200a0960410b11fb) +++ src/libchcore/TOverlappedReaderWriterFB.cpp (.../TOverlappedReaderWriterFB.cpp) (revision c0d9a798f9fbbeda239b84721ed864f9727e1ddc) @@ -21,7 +21,6 @@ #include "TCoreException.h" #include "ErrorCodes.h" #include -#include namespace chcore { @@ -43,7 +42,7 @@ { } - TSubTaskBase::ESubOperationResult TOverlappedReaderWriterFB::WaitForMissingBuffersAndResetState(bool& bProcessed) + TSubTaskBase::ESubOperationResult TOverlappedReaderWriterFB::WaitForMissingBuffersAndResetState() { m_spReader->SetReleaseMode(); m_spWriter->SetReleaseMode(); @@ -63,8 +62,6 @@ bool bStopProcessing = false; while(!bStopProcessing) { - bool bIgnoreStop = false; - DWORD dwResult = WaitForMultipleObjectsEx(eHandleCount, arrHandles.data(), false, INFINITE, true); switch(dwResult) { @@ -82,19 +79,20 @@ case WAIT_OBJECT_0 + eWritePossible: { - eResult = m_spWriter->OnWritePossible(bIgnoreStop, bProcessed); + m_spWriter->OnWritePossible(); break; } case WAIT_OBJECT_0 + eWriteFailed: { - eResult = m_spWriter->OnWriteFailed(bIgnoreStop, bProcessed); + m_spWriter->OnWriteFailed(); break; } case WAIT_OBJECT_0 + eWriteFinished: { - eResult = m_spWriter->OnWriteFinished(bIgnoreStop, bProcessed); + bool bIgnoreStop = false; + m_spWriter->OnWriteFinished(bIgnoreStop); break; } @@ -106,7 +104,7 @@ return eResult; } - TSubTaskBase::ESubOperationResult TOverlappedReaderWriterFB::Start(HANDLE hKill, bool& bProcessed) + TSubTaskBase::ESubOperationResult TOverlappedReaderWriterFB::Start(HANDLE hKill) { // read data from file to buffer // NOTE: order is critical here: @@ -130,7 +128,7 @@ TSubTaskBase::ESubOperationResult eResult = TSubTaskBase::eSubResult_Continue; bool bStopProcessing = false; - while(!bStopProcessing) + while(!bStopProcessing && eResult == TSubTaskBase::eSubResult_Continue) { DWORD dwResult = WaitForMultipleObjectsEx(eHandleCount, arrHandles.data(), false, INFINITE, true); switch(dwResult) @@ -150,29 +148,29 @@ case WAIT_OBJECT_0 + eReadPossible: { - eResult = m_spReader->OnReadPossible(bStopProcessing, bProcessed); + eResult = m_spReader->OnReadPossible(); break; } case WAIT_OBJECT_0 + eReadFailed: { - eResult = m_spReader->OnReadFailed(bStopProcessing, bProcessed); + eResult = m_spReader->OnReadFailed(); break; } case WAIT_OBJECT_0 + eWritePossible: { - eResult = m_spWriter->OnWritePossible(bStopProcessing, bProcessed); + eResult = m_spWriter->OnWritePossible(); break; } case WAIT_OBJECT_0 + eWriteFailed: { - eResult = m_spWriter->OnWriteFailed(bStopProcessing, bProcessed); + eResult = m_spWriter->OnWriteFailed(); break; } case WAIT_OBJECT_0 + eWriteFinished: { - eResult = m_spWriter->OnWriteFinished(bStopProcessing, bProcessed); + eResult = m_spWriter->OnWriteFinished(bStopProcessing); break; } @@ -181,7 +179,7 @@ } } - WaitForMissingBuffersAndResetState(bProcessed); + WaitForMissingBuffersAndResetState(); return eResult; }