diff --git a/hist/hist/src/TH1.cxx b/hist/hist/src/TH1.cxx index 9f53a7235332e356430296344f7af92dd31975cf..e580e7f95ca0f36e65d0f296315c4b3e978d9a98 100644 --- a/hist/hist/src/TH1.cxx +++ b/hist/hist/src/TH1.cxx @@ -745,6 +745,7 @@ void TH1::Build() if (TH1::AddDirectoryStatus()) { fDirectory = gDirectory; if (fDirectory) { + fFunctions->UseRWLock(); fDirectory->Append(this,kTRUE); } } @@ -2529,6 +2530,7 @@ void TH1::Copy(TObject &obj) const // any directory (fDirectory = 0) if (fgAddDirectory && gDirectory) { gDirectory->Append(&obj); + ((TH1&)obj).fFunctions->UseRWLock(); ((TH1&)obj).fDirectory = gDirectory; } else ((TH1&)obj).fDirectory = 0; @@ -8071,7 +8073,10 @@ void TH1::SetDirectory(TDirectory *dir) if (fDirectory == dir) return; if (fDirectory) fDirectory->Remove(this); fDirectory = dir; - if (fDirectory) fDirectory->Append(this); + if (fDirectory) { + fFunctions->UseRWLock(); + fDirectory->Append(this); + } } ////////////////////////////////////////////////////////////////////////////////