diff --git a/Reconstruction/TrackParticleTPCnv/TrackParticleTPCnv/ATLAS_CHECK_THREAD_SAFETY b/Reconstruction/TrackParticleTPCnv/TrackParticleTPCnv/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 0000000000000000000000000000000000000000..d96f338f1f153ac6caa050bec5a43b3a07af4b23 --- /dev/null +++ b/Reconstruction/TrackParticleTPCnv/TrackParticleTPCnv/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +Reconstruction/TrackParticleTPCnv diff --git a/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp1.cxx b/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp1.cxx index 75a991b7b7772f88c7ebb6ad675f59a48617589b..48fddf41dd8e0fe876ee53c853b0d522e421f5db 100755 --- a/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp1.cxx +++ b/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp1.cxx @@ -3,6 +3,7 @@ */ #include "TrackParticleTPCnv/TrackParticleContainerCnv_tlp1.h" +#include "CxxUtils/checker_macros.h" TrackParticleContainerCnv_tlp1::TrackParticleContainerCnv_tlp1() { @@ -161,7 +162,12 @@ persToTrans (const Rec::TrackParticleContainer_tlp1* pers, Rec::TrackParticleContainer* trans, MsgStream& msg) { - setPStorage (const_cast<Rec::TrackParticleContainer_tlp1*> (pers)); + // FIXME: TPConverter uses the same non-const member m_pStorage + // for both reading and writing, but we want it to be const + // in the former case. + Rec::TrackParticleContainer_tlp1* pers_nc ATLAS_THREAD_SAFE = + const_cast<Rec::TrackParticleContainer_tlp1*> (pers); + setPStorage (pers_nc); m_mainConverter.pstoreToTrans (0, trans, msg); } diff --git a/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp2.cxx b/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp2.cxx index 1ee9b66c634a44d21927e9102757960637de84e0..0c64f8d896893e210e33178880563e8e46a855bf 100644 --- a/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp2.cxx +++ b/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp2.cxx @@ -1,8 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #include "TrackParticleTPCnv/TrackParticleContainerCnv_tlp2.h" +#include "CxxUtils/checker_macros.h" TrackParticleContainerCnv_tlp2::TrackParticleContainerCnv_tlp2() { @@ -124,7 +125,12 @@ void TrackParticleContainerCnv_tlp2::setPStorage( Rec::TrackParticleContainer_tl void T_TPCnv<Rec::TrackParticleContainer, Rec::TrackParticleContainer_tlp2 >:: persToTrans (const Rec::TrackParticleContainer_tlp2* pers, Rec::TrackParticleContainer* trans, MsgStream& msg){ - setPStorage (const_cast<Rec::TrackParticleContainer_tlp2*> (pers)); + // FIXME: TPConverter uses the same non-const member m_pStorage + // for both reading and writing, but we want it to be const + // in the former case. + Rec::TrackParticleContainer_tlp2* pers_nc ATLAS_THREAD_SAFE = + const_cast<Rec::TrackParticleContainer_tlp2*> (pers); + setPStorage (pers_nc); m_mainConverter.pstoreToTrans (0, trans, msg); } diff --git a/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp3.cxx b/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp3.cxx index d70cc856da3a064ad939ed1c8a16ee86ea98bb18..803eaff52194ce16aeecce09fc4867a49a64f0f5 100644 --- a/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp3.cxx +++ b/Reconstruction/TrackParticleTPCnv/src/TrackParticleContainerCnv_tlp3.cxx @@ -1,8 +1,9 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration */ #include "TrackParticleTPCnv/TrackParticleContainerCnv_tlp3.h" +#include "CxxUtils/checker_macros.h" TrackParticleContainerCnv_tlp3::TrackParticleContainerCnv_tlp3(bool nosurf /*= false*/) : m_trackParametersCnv (nosurf) @@ -29,8 +30,14 @@ void TrackParticleContainerCnv_tlp3::setPStorage( Rec::TrackParticleContainer_tl void T_TPCnv<Rec::TrackParticleContainer, Rec::TrackParticleContainer_tlp3 >:: -persToTrans (const Rec::TrackParticleContainer_tlp3* pers, Rec::TrackParticleContainer* trans, MsgStream& msg){ - setPStorage (const_cast<Rec::TrackParticleContainer_tlp3*> (pers)); +persToTrans (const Rec::TrackParticleContainer_tlp3* pers, Rec::TrackParticleContainer* trans, MsgStream& msg) +{ + // FIXME: TPConverter uses the same non-const member m_pStorage + // for both reading and writing, but we want it to be const + // in the former case. + Rec::TrackParticleContainer_tlp3* pers_nc ATLAS_THREAD_SAFE = + const_cast<Rec::TrackParticleContainer_tlp3*> (pers); + setPStorage (pers_nc); m_mainConverter.pstoreToTrans (0, trans, msg); }