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();
+}
+
+