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