diff --git a/core/thread/inc/ROOT/TRWSpinLock.hxx b/core/thread/inc/ROOT/TRWSpinLock.hxx index 31af74fe90df0329993b4b523cdf64a2facb1eb7..32c48b8ede8fd74c4c534ff9e4a295eb3c207eb5 100644 --- a/core/thread/inc/ROOT/TRWSpinLock.hxx +++ b/core/thread/inc/ROOT/TRWSpinLock.hxx @@ -38,6 +38,25 @@ public: void WriteLock(); void WriteUnLock(); }; + +class TRWSpinLockReadGuard { +private: + TRWSpinLock &fLock; + +public: + TRWSpinLockReadGuard(TRWSpinLock &lock) : fLock(lock) { fLock.ReadLock(); } + ~TRWSpinLockReadGuard() { fLock.ReadUnLock(); } +}; + +class TRWSpinLockWriteGuard { +private: + TRWSpinLock &fLock; + +public: + TRWSpinLockWriteGuard(TRWSpinLock &lock) : fLock(lock) { fLock.WriteLock(); } + ~TRWSpinLockWriteGuard() { fLock.WriteUnLock(); } +}; + } // end of namespace ROOT #endif