From 3a3e3e88bf5a93251cb355104e4341f2626abf79 Mon Sep 17 00:00:00 2001 From: Susumu Oda <susumu.oda@cern.ch> Date: Tue, 30 Jun 2020 12:37:20 +0000 Subject: [PATCH] Add ATLAS_CHECK_THREAD_SAFETY to PixelConditionsTools package to check and keep thread safety. Add ATLAS_NO_CHECK_FILE_THREAD_SAFETY of CxxUtils/checker_macros.h to PixelByteStreamErrorsTool.h/cxx because This class currently has many mutable memebers without mutex guard or atomicity. --- .../InDetConditions/PixelConditionsTools/CMakeLists.txt | 3 ++- .../PixelConditionsTools/ATLAS_CHECK_THREAD_SAFETY | 1 + .../PixelConditionsTools/src/PixelByteStreamErrorsTool.h | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 InnerDetector/InDetConditions/PixelConditionsTools/PixelConditionsTools/ATLAS_CHECK_THREAD_SAFETY diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/CMakeLists.txt b/InnerDetector/InDetConditions/PixelConditionsTools/CMakeLists.txt index 31ad2e8a32e..bd396954966 100644 --- a/InnerDetector/InDetConditions/PixelConditionsTools/CMakeLists.txt +++ b/InnerDetector/InDetConditions/PixelConditionsTools/CMakeLists.txt @@ -13,6 +13,7 @@ atlas_depends_on_subdirs( PUBLIC InnerDetector/InDetConditions/InDetConditionsSummaryService PRIVATE Control/AthenaBaseComps + Control/CxxUtils Control/SGTools Database/AthenaPOOL/AthenaPoolUtilities Database/RegistrationServices @@ -44,7 +45,7 @@ atlas_add_component( PixelConditionsTools src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} PixelConditionsToolsLib AthenaKernel GeoPrimitives GaudiKernel AthenaBaseComps - SGTools AthenaPoolUtilities DetDescrConditions Identifier PixelCablingLib PixelConditionsData InDetIdentifier + CxxUtils SGTools AthenaPoolUtilities DetDescrConditions Identifier PixelCablingLib PixelConditionsData InDetIdentifier GeoModelUtilities InDetReadoutGeometry PathResolver PixelGeoModelLib InDetByteStreamErrors ) # Install files from the package: diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/PixelConditionsTools/ATLAS_CHECK_THREAD_SAFETY b/InnerDetector/InDetConditions/PixelConditionsTools/PixelConditionsTools/ATLAS_CHECK_THREAD_SAFETY new file mode 100644 index 00000000000..f11e02535b0 --- /dev/null +++ b/InnerDetector/InDetConditions/PixelConditionsTools/PixelConditionsTools/ATLAS_CHECK_THREAD_SAFETY @@ -0,0 +1 @@ +InnerDetector/InDetConditions/PixelConditionsTools diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelByteStreamErrorsTool.h b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelByteStreamErrorsTool.h index 64b8a6b94ea..a957f7a58dc 100644 --- a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelByteStreamErrorsTool.h +++ b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelByteStreamErrorsTool.h @@ -18,6 +18,7 @@ #include "GaudiKernel/ServiceHandle.h" //Athena includes +#include "CxxUtils/checker_macros.h" #include "Identifier/Identifier.h" #include "Identifier/IdentifierHash.h" #include "InDetIdentifier/PixelID.h" @@ -28,7 +29,8 @@ #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" -class PixelByteStreamErrorsTool: public AthAlgTool, public IPixelByteStreamErrorsTool { +class ATLAS_NOT_THREAD_SAFE PixelByteStreamErrorsTool: // This class currently has many mutable memebers without mutex guard or atomicity. +public AthAlgTool, public IPixelByteStreamErrorsTool { public: static InterfaceID& interfaceID(); -- GitLab