diff --git a/core/thread/inc/ROOT/TRWSpinLock.hxx b/core/thread/inc/ROOT/TRWSpinLock.hxx index 32c48b8ede8fd74c4c534ff9e4a295eb3c207eb5..79d9921e17c5a2a69f06a62c8862a5f8c16b6ff3 100644 --- a/core/thread/inc/ROOT/TRWSpinLock.hxx +++ b/core/thread/inc/ROOT/TRWSpinLock.hxx @@ -44,8 +44,8 @@ private: TRWSpinLock &fLock; public: - TRWSpinLockReadGuard(TRWSpinLock &lock) : fLock(lock) { fLock.ReadLock(); } - ~TRWSpinLockReadGuard() { fLock.ReadUnLock(); } + TRWSpinLockReadGuard(TRWSpinLock &lock); + ~TRWSpinLockReadGuard(); }; class TRWSpinLockWriteGuard { @@ -53,8 +53,8 @@ private: TRWSpinLock &fLock; public: - TRWSpinLockWriteGuard(TRWSpinLock &lock) : fLock(lock) { fLock.WriteLock(); } - ~TRWSpinLockWriteGuard() { fLock.WriteUnLock(); } + TRWSpinLockWriteGuard(TRWSpinLock &lock); + ~TRWSpinLockWriteGuard(); }; } // end of namespace ROOT diff --git a/core/thread/src/TRWSpinLock.cxx b/core/thread/src/TRWSpinLock.cxx index 5aea5b23af4de6975e5b474206b78cf43377bd88..37b51c5c6ed1c84826bc8ad8b6e72200844f9fe7 100644 --- a/core/thread/src/TRWSpinLock.cxx +++ b/core/thread/src/TRWSpinLock.cxx @@ -110,3 +110,25 @@ void TRWSpinLock::WriteUnLock() fCond.notify_all(); } + +TRWSpinLockReadGuard::TRWSpinLockReadGuard(TRWSpinLock &lock) : fLock(lock) +{ + fLock.ReadLock(); +} + +TRWSpinLockReadGuard::~TRWSpinLockReadGuard() +{ + fLock.ReadUnLock(); +} + +TRWSpinLockWriteGuard::TRWSpinLockWriteGuard(TRWSpinLock &lock) : fLock(lock) +{ + fLock.WriteLock(); +} + +TRWSpinLockWriteGuard::~TRWSpinLockWriteGuard() +{ + fLock.WriteUnLock(); +} + +