Index: src/libchengine/TSubTaskDelete.cpp =================================================================== diff -u -N -r06dcc90de4fac6573a68b147ad9d62b770042582 -r08717141ce5f6926116c298cbc9442094a45bb67 --- src/libchengine/TSubTaskDelete.cpp (.../TSubTaskDelete.cpp) (revision 06dcc90de4fac6573a68b147ad9d62b770042582) +++ src/libchengine/TSubTaskDelete.cpp (.../TSubTaskDelete.cpp) (revision 08717141ce5f6926116c298cbc9442094a45bb67) @@ -31,9 +31,9 @@ #include "TFileInfo.h" #include "TTaskLocalStats.h" #include "TScopedRunningTimeTracker.h" -#include "TFeedbackHandlerWrapper.h" #include "TBufferSizes.h" #include "TFilesystemFeedbackWrapper.h" +#include using namespace chcore; using namespace string; @@ -75,17 +75,22 @@ m_tSubTaskStats.SetCurrentPath(spFileInfo->GetFullFilePath().ToString()); } - TSubTaskBase::ESubOperationResult TSubTaskDelete::Exec(const IFeedbackHandlerPtr& spFeedback) + TSubTaskBase::ESubOperationResult TSubTaskDelete::Exec() { TScopedRunningTimeTracker guard(m_tSubTaskStats); - TFeedbackHandlerWrapperPtr spFeedbackHandler(std::make_shared(spFeedback, guard)); + FeedbackManagerPtr spFeedbackManager = GetContext().GetFeedbackManager(); + spFeedbackManager->SetSecondaryTimeTracker(&guard); + BOOST_SCOPE_EXIT(&spFeedbackManager) { + spFeedbackManager->SetSecondaryTimeTracker(nullptr); + } BOOST_SCOPE_EXIT_END + // log TFileInfoArray& rFilesCache = GetContext().GetFilesCache(); TWorkerThreadController& rThreadController = GetContext().GetThreadController(); IFilesystemPtr spFilesystem = GetContext().GetLocalFilesystem(); - TFilesystemFeedbackWrapper tFilesystemFBWrapper(spFeedbackHandler, spFilesystem, GetContext().GetLogFileData(), rThreadController); + TFilesystemFeedbackWrapper tFilesystemFBWrapper(spFeedbackManager, spFilesystem, GetContext().GetLogFileData(), rThreadController); // log LOG_INFO(m_spLog) << _T("Deleting files (DeleteFiles)...");