From 4af9d2009f62af2b0e317cab661301ffc3f7fec8 Mon Sep 17 00:00:00 2001 From: Danilo Piparo <danilo.piparo@cern.ch> Date: Thu, 31 May 2018 15:51:32 +0200 Subject: [PATCH] [MT] Add TRWSpinLock guards --- core/thread/inc/ROOT/TRWSpinLock.hxx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/core/thread/inc/ROOT/TRWSpinLock.hxx b/core/thread/inc/ROOT/TRWSpinLock.hxx index 31af74fe90d..32c48b8ede8 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 -- GitLab