Index: src/libchcore/TTaskLocalStats.h =================================================================== diff -u -N -ra5f396da5ed5ffb3fcd9fdf22afb5a7fd07e1ab8 -r320c4eb6ba3a38dcd6fbda6a9a12a8350a153e41 --- src/libchcore/TTaskLocalStats.h (.../TTaskLocalStats.h) (revision a5f396da5ed5ffb3fcd9fdf22afb5a7fd07e1ab8) +++ src/libchcore/TTaskLocalStats.h (.../TTaskLocalStats.h) (revision 320c4eb6ba3a38dcd6fbda6a9a12a8350a153e41) @@ -27,6 +27,7 @@ #include "ESubTaskTypes.h" #include "TSubTaskStatsInfo.h" #include "TTaskStatsSnapshot.h" +#include "TSharedModificationTracker.h" BEGIN_CHCORE_NAMESPACE @@ -68,6 +69,9 @@ bool IsRunning() const; + void Store(const ISerializerContainerPtr& spContainer) const; + void Load(const ISerializerContainerPtr& spContainer); + protected: // running/not running state void MarkTaskAsRunning(); @@ -90,9 +94,20 @@ TTaskLocalStatsInfo& operator=(const TTaskLocalStatsInfo&); private: + enum EModifications + { + eMod_Added, + eMod_Timer, + + eMod_Last + }; + + typedef std::bitset Bitset; + mutable Bitset m_setModifications; + volatile bool m_bTaskIsRunning; - mutable TSimpleTimer m_tTimer; + mutable TSharedModificationTracker m_tTimer; #pragma warning(push) #pragma warning(disable: 4251)