Skip to content

Add ATLAS_CHECK_THREAD_SAFETY to InDetGeoModelUtils, TRT_GeoModel and PixelGeoModel packages

Susumu Oda requested to merge oda/athena:master-InDetGeoModelUtils-v2 into master
  • Add ATLAS_CHECK_THREAD_SAFETY to InDetGeoModelUtils package.
    • Add ATLAS_NOT_THREAD_SAFE to InDetDD::AthenaComps::rdbAccessSvc and InDetDD::AthenaComps::detStore methods.
    • Change other const getter methods to return const pointers and prepare non-const getter methods to return non-const pointers in InDetDD::AthenaComps class.
    • Change InDetMaterialManager::retrieveManager to use const StoreGateSvc*.
    • Add ATLAS_NOT_THREAD_SAFE to ServiceVolumeMakerMgr::readLayerShift because thread unsafe IRDBAccessSvc* InDetDD::AthenaComps::rdbAccessSvc() const is used.
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to ServiceVolumeMaker constructor because it uses ServiceVolumeMakerMgr::readLayerShift.
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to InDetMaterialManager constructor because it uses thread unsafe InDetDD::AthenaComps::detStore()
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to SCT_DataBase constructor because it uses thread unsafe InDet::AthenaComps::rdbAccessSvc method.
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to SCT_DetectorFactory constructor because it uses thread unsafe InDet::AthenaComps::rdbAccessSvc method.
    • Add ATLAS_NOT_THREAD_SAFE to SCT_DetectorTool::create method because it uses thread unsafe SCT_DetectorFactory constructor.
    • Add ATLAS_THREAD_SAFE to mutable Athena::MsgStreamMember m_msg.
    • Add mutex guard to ServiceVolume class to protect mutable variables.
    • Implement copy constructor of ServiceVolume because copy constructor of std::mutex is deleted.
  • Add ATLAS_CHECK_THREAD_SAFETY to TRT_GeoModel package.
    • Add ATLAS_NOT_THREAD_SAFE to TRTDetectorFactory_Full class because static variables are used.
    • Add ATLAS_NOT_THREAD_SAFE to TRT_DetectorTool::create method because thread unsafe TRTDetectorFactory_Full class is used.
    • Add ATLAS_NOT_THREAD_SAFE to TRT_DetectorTool::registerCallback method because tread unsafe StoreGateSvc::regFcn method and DataHandle template are used.
    • Add ATLAS_NOT_THREAD_SAFE to TRT_DetDescrDB_ParameterInterface::SetValues because thread unsafe AthenaComps::rdbAccessSvc const method is used.
    • Add ATLAS_NOT_THREAD_SAFE to TRT_DetDescrDB_ParameterInterface::SetValues because thread unsafe AthenaComps::rdbAccessSvc const method is used.
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to TRT_DetDescrDB_ParameterInterface constructor because thread unsafe SetValues method is used.
  • Add ATLAS_CHECK_THREAD_SAFETY to PixelGeoModel package.
    • Add Control/CxxUtils to CMakeLists.txt.
    • Add ATLAS_NOT_THREAD_SAFE to PixelDetectorTool::registerCallback because thread unsafe DataHandle template and StoreGateSvc::regFcn method are used.
    • Add ATLAS_NOT_THREAD_SAFE to GeoVPixelFactory class because static member variables are used.
    • Add ATLAS_NOT_THREAD_SAFE to classes that inherit thread unsafe GeoVPixelFactory class.
    • Add ATLAS_NO_CHECK_FILE_THREAD_SAFETY to PixelDetectorDC1DC2.h/cxx because these are legacy codes.
    • Add ATLAS_NOT_THREAD_SAFE to GeoPixelStaveSupport::getPhysVol method and its derived methods because const method returns non-const pointer.
    • Add ATLAS_THREAD_SAFE to mutable Athena::MsgStreamMember m_msg in GeoPixelTMT class.
    • Add ATLAS_NOT_THREAD_SAFE GeoPixelDetailedStaveSupport::Build method because thread unsafe GeoPixelSiCrystal and GeoPixelModule classes are used.
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to GeoPixelDetailedStaveSupport constructor.
    • Add ATLAS_NOT_THREAD_SAFE to OraclePixGeoManager::legacyManager method because const method returns non-const pointer.
    • Add ATLAS_NOT_THREAD_SAFE to OraclePixGeoManager::commonItems method because const method returns non-const pointer.
    • Add ATLAS_NOT_THREAD_SAFE to bcm, blm and serviceBuilderTool methods of PixelGeoModelAthenaComps class because const methods return non-const pointers.
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to PixelDetectorFactorySR1 constructor because thread unsafe GeoVPixelFactory class is used.
    • Add ATLAS_NOT_THREAD_SAFE to PixelDetectorFactorySR1::create method because thread unsafe GeoPixelServices, GeoPixelBarrel, GeoPixelEndCap classes are used.
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to PixelDetectorFactory constructor because thread unsafe GeoVPixelFactory class is used.
    • Add ATLAS_NOT_THREAD_SAFE to PixelDetectorFactory::create method because thread usnafe GeoPixelEnvelope class is used.
    • Add ATLAS_NOT_THREAD_SAFE to PixelDetectorTool::create method because thread unsafe PixelDetectorFactorySR1 and PixelDetectorFactory constructors are used.
    • Add ATLAS_NOT_THREAD_SAFE to OraclePixGeoManager::init method because thread unsafe InDetDD::AthenaComps::rdbAccessSvc method is used.
    • Add ATLAS_NOT_THREAD_SAFE to OraclePixGeoManager::GetPixelDDManager method because thread unsafe InDetDD::AthenaComps::detStore method is used.
    • Add ATLAS_CTORDTOR_NOT_THREAD_SAFE to OraclePixGeoManager constructor because thread unsafe init method is used.
  • Update client classes and methods to propagate ATLAS_NOT_THREAD_SAFE flag or to use the same interface.
  • No result changes are expected.
  • https://its.cern.ch/jira/browse/ATLASRECTS-5560
Edited by Susumu Oda

Merge request reports