Index: src/libchcore/TBasePathData.cpp =================================================================== diff -u -re8f31b0f922b402878356e130c866c4f3682a7f5 -rda877d1e0007d3dffa60111c79a1d8927174e6e9 --- src/libchcore/TBasePathData.cpp (.../TBasePathData.cpp) (revision e8f31b0f922b402878356e130c866c4f3682a7f5) +++ src/libchcore/TBasePathData.cpp (.../TBasePathData.cpp) (revision da877d1e0007d3dffa60111c79a1d8927174e6e9) @@ -276,6 +276,16 @@ return true; } + void TBasePathDataContainer::ResetProcessingFlags() + { + boost::unique_lock lock(m_lock); + + for(const TBasePathDataPtr& spBasePath : m_vEntries) + { + spBasePath->SetSkipFurtherProcessing(false); + } + } + TBasePathDataContainer& TBasePathDataContainer::operator=(const TPathContainer& tPaths) { boost::unique_lock lock(m_lock); Index: src/libchcore/TBasePathData.h =================================================================== diff -u -rbd349309a6dcd25f8d6dc3348a9dc1c95ac4cc6c -rda877d1e0007d3dffa60111c79a1d8927174e6e9 --- src/libchcore/TBasePathData.h (.../TBasePathData.h) (revision bd349309a6dcd25f8d6dc3348a9dc1c95ac4cc6c) +++ src/libchcore/TBasePathData.h (.../TBasePathData.h) (revision da877d1e0007d3dffa60111c79a1d8927174e6e9) @@ -114,7 +114,9 @@ bool IsEmpty() const; file_count_t GetCount() const; + // processing flags bool AllMarkedAsSkipFurtherProcessing() const; + void ResetProcessingFlags(); void Store(const ISerializerContainerPtr& spContainer) const; void Load(const ISerializerContainerPtr& spContainer); Index: src/libchcore/TTask.cpp =================================================================== diff -u -rd4064fca634707dcae112e5a41ed37e04455dc2a -rda877d1e0007d3dffa60111c79a1d8927174e6e9 --- src/libchcore/TTask.cpp (.../TTask.cpp) (revision d4064fca634707dcae112e5a41ed37e04455dc2a) +++ src/libchcore/TTask.cpp (.../TTask.cpp) (revision da877d1e0007d3dffa60111c79a1d8927174e6e9) @@ -318,6 +318,8 @@ m_spInternalFeedbackHandler->RestoreDefaults(); m_tSubTasksArray.ResetProgressAndStats(); m_tLocalStats.Clear(); + m_spSrcPaths->ResetProcessingFlags(); + m_tSubTaskContext.GetFilesCache().Clear(); Store(true);