diff --git a/geom/geom/src/TGeoBoolNode.cxx b/geom/geom/src/TGeoBoolNode.cxx index a8ec0c68ad670188f423be52f4424b0391c9579c..63452d6c62d7741b7fd488e67f30ad1ff677803f 100644 --- a/geom/geom/src/TGeoBoolNode.cxx +++ b/geom/geom/src/TGeoBoolNode.cxx @@ -83,6 +83,7 @@ TGeoBoolNode::ThreadData_t& TGeoBoolNode::GetThreadData() const //______________________________________________________________________________ void TGeoBoolNode::ClearThreadData() const { + TThread::Lock(); std::vector<ThreadData_t*>::iterator i = fThreadData.begin(); while (i != fThreadData.end()) { @@ -91,6 +92,7 @@ void TGeoBoolNode::ClearThreadData() const } fThreadData.clear(); fThreadSize = 0; + TThread::UnLock(); } //______________________________________________________________________________ diff --git a/geom/geom/src/TGeoManager.cxx b/geom/geom/src/TGeoManager.cxx index 1f0905b6aa80ffa4215d4d4a8371adffcd7d99ec..315fc2f7dec67b1efbaaed926d8f99ac7da3c751 100644 --- a/geom/geom/src/TGeoManager.cxx +++ b/geom/geom/src/TGeoManager.cxx @@ -366,6 +366,7 @@ TGeoManager::ThreadData_t& TGeoManager::GetThreadData() const //______________________________________________________________________________ void TGeoManager::ClearThreadData() const { + TThread::Lock(); std::vector<ThreadData_t*>::iterator i = fThreadData.begin(); while (i != fThreadData.end()) { @@ -377,6 +378,7 @@ void TGeoManager::ClearThreadData() const TIter next(fVolumes); TGeoVolume *vol; while ((vol=(TGeoVolume*)next())) vol->ClearThreadData(); + TThread::UnLock(); } //_____________________________________________________________________________ diff --git a/geom/geom/src/TGeoPatternFinder.cxx b/geom/geom/src/TGeoPatternFinder.cxx index 88ef570af27785a92c32ef3e98a8f77fdb32461f..9319332cfe04ca80080e989253fb4a1d3c365c54 100644 --- a/geom/geom/src/TGeoPatternFinder.cxx +++ b/geom/geom/src/TGeoPatternFinder.cxx @@ -90,6 +90,7 @@ TGeoPatternFinder::ThreadData_t& TGeoPatternFinder::GetThreadData() const //______________________________________________________________________________ void TGeoPatternFinder::ClearThreadData() const { + TThread::Lock(); std::vector<ThreadData_t*>::iterator i = fThreadData.begin(); while (i != fThreadData.end()) { @@ -98,6 +99,7 @@ void TGeoPatternFinder::ClearThreadData() const } fThreadData.clear(); fThreadSize = 0; + TThread::UnLock(); } //_____________________________________________________________________________ diff --git a/geom/geom/src/TGeoVolume.cxx b/geom/geom/src/TGeoVolume.cxx index 9ce6da0ba736791fe2b90811964f5dd60ae4c512..86111d8a78d6ab7bd6ebbe59e01e5af000ad046f 100644 --- a/geom/geom/src/TGeoVolume.cxx +++ b/geom/geom/src/TGeoVolume.cxx @@ -2495,6 +2495,7 @@ TGeoVolumeAssembly::ThreadData_t& TGeoVolumeAssembly::GetThreadData() const //______________________________________________________________________________ void TGeoVolumeAssembly::ClearThreadData() const { + TThread::Lock(); TGeoVolume::ClearThreadData(); std::vector<ThreadData_t*>::iterator i = fThreadData.begin(); while (i != fThreadData.end()) @@ -2504,6 +2505,7 @@ void TGeoVolumeAssembly::ClearThreadData() const } fThreadData.clear(); fThreadSize = 0; + TThread::UnLock(); } //______________________________________________________________________________ diff --git a/geom/geom/src/TGeoVoxelFinder.cxx b/geom/geom/src/TGeoVoxelFinder.cxx index c6b9c1c02590276a08a16972e62734f6157504d6..a6014df00be2239b000a59985484e3a49d3472f9 100644 --- a/geom/geom/src/TGeoVoxelFinder.cxx +++ b/geom/geom/src/TGeoVoxelFinder.cxx @@ -90,6 +90,7 @@ TGeoVoxelFinder::ThreadData_t& TGeoVoxelFinder::GetThreadData(Int_t tid) const //______________________________________________________________________________ void TGeoVoxelFinder::ClearThreadData() const { + TThread::Lock(); std::vector<ThreadData_t*>::iterator i = fThreadData.begin(); while (i != fThreadData.end()) { @@ -98,6 +99,7 @@ void TGeoVoxelFinder::ClearThreadData() const } fThreadData.clear(); fThreadSize = 0; + TThread::UnLock(); }