Index: src/libchengine/TSubTaskScanDirectory.cpp =================================================================== diff -u -N -r85b07e753393f661f7d8f528e4238ebb6e9e1204 -r08717141ce5f6926116c298cbc9442094a45bb67 --- src/libchengine/TSubTaskScanDirectory.cpp (.../TSubTaskScanDirectory.cpp) (revision 85b07e753393f661f7d8f528e4238ebb6e9e1204) +++ src/libchengine/TSubTaskScanDirectory.cpp (.../TSubTaskScanDirectory.cpp) (revision 08717141ce5f6926116c298cbc9442094a45bb67) @@ -31,9 +31,9 @@ #include "TFileInfoArray.h" #include "TFileInfo.h" #include "TScopedRunningTimeTracker.h" -#include "TFeedbackHandlerWrapper.h" #include "TBufferSizes.h" #include "TFilesystemFeedbackWrapper.h" +#include using namespace chcore; using namespace string; @@ -78,11 +78,16 @@ m_tSubTaskStats.SetCurrentPath(TString()); } - TSubTaskScanDirectories::ESubOperationResult TSubTaskScanDirectories::Exec(const IFeedbackHandlerPtr& spFeedback) + TSubTaskScanDirectories::ESubOperationResult TSubTaskScanDirectories::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(); @@ -91,7 +96,7 @@ const TFileFiltersArray& rafFilters = GetContext().GetFilters(); IFilesystemPtr spFilesystem = GetContext().GetLocalFilesystem(); - TFilesystemFeedbackWrapper tFilesystemFBWrapper(spFeedbackHandler, spFilesystem, GetContext().GetLogFileData(), rThreadController); + TFilesystemFeedbackWrapper tFilesystemFBWrapper(spFeedbackManager, spFilesystem, GetContext().GetLogFileData(), rThreadController); LOG_INFO(m_spLog) << _T("Searching for files...");