diff --git a/uppsrc/Core/Mt.h b/uppsrc/Core/Mt.h index 02ff23923..c5f8aa38e 100644 --- a/uppsrc/Core/Mt.h +++ b/uppsrc/Core/Mt.h @@ -479,6 +479,17 @@ struct RWMutex::WriteLock : NoCopy { typedef RWMutex StaticRWMutex; +struct LazyUpdate { + mutable bool dirty; + +public: + void Invalidate() { dirty = true; } + bool BeginUpdate() const { return dirty; } + void EndUpdate() const { dirty = false; } + + LazyUpdate() { dirty = true; } +}; + #define INTERLOCKED #define INTERLOCKED_(x) { x.Enter(); }