Index: src/libchcore/TTask.h
===================================================================
diff -u -N -rd32a79f0e9220bad2c6eeb5e8a986228b6e832fb -rb7655a8f0721e5454befd29e3e067748eb0521e9
--- src/libchcore/TTask.h	(.../TTask.h)	(revision d32a79f0e9220bad2c6eeb5e8a986228b6e832fb)
+++ src/libchcore/TTask.h	(.../TTask.h)	(revision b7655a8f0721e5454befd29e3e067748eb0521e9)
@@ -34,6 +34,7 @@
 #include "TSubTaskContext.h"
 #include "TTaskStatsSnapshot.h"
 #include "ISerializer.h"
+#include "TModificationTracker.h"
 
 BEGIN_CHCORE_NAMESPACE
 
@@ -126,16 +127,28 @@
 	ISerializerPtr GetSerializer() const;
 
 private:
+	// serialization
 #pragma warning(push)
 #pragma warning(disable: 4251)
 	ISerializerPtr m_spSerializer;
 #pragma warning(pop)
+	bool m_bWasSerialized;
 
-	TString m_strTaskName;
+	// base data
+#pragma region Base data
+	bool m_bBaseDataChanged;
 
+#pragma warning(push)
+#pragma warning(disable: 4251)
+	TSharedModificationTracker<TString> m_strTaskName;
+	TSharedModificationTracker<volatile ETaskCurrentState> m_eCurrentState;     // current state of processing this task represents
+	TSharedModificationTracker<TSmartPath> m_pathLog;
+	TSharedModificationTracker<TSmartPath> m_pathDestinationPath;
+#pragma warning(pop)
+#pragma endregion
+
 	// basic information
 	TPathContainer m_vSourcePaths;
-	TSmartPath m_pathDestinationPath;
 
 	// Global task settings
 	TConfig m_tConfiguration;
@@ -152,17 +165,13 @@
 	// changing slowly or only partially
 	TFileInfoArray m_files;             // list of files/directories found during operating on the task input data (filled by search for files)
 
-	// changing fast
-	volatile ETaskCurrentState m_eCurrentState;     // current state of processing this task represents
-
 	// task settings
 	TFileFiltersArray m_afFilters;          // filtering settings for files (will be filtered according to the rules inside when searching for files)
 
 	bool m_bForce;						// if the continuation of tasks should be independent of max concurrently running task limit
 	bool m_bContinue;					// allows task to continue
 
 	// other helpers
-	TSmartPath m_pathLog;
 	icpf::log_file m_log;				///< Log file where task information will be stored
 
 	// Local filesystem access