RootUtils: Delay setting root error handler.
The ROOT error handler used by WithRootErrorHandler was being set when the RootUtils library was loaded. However, that may be too early; in particular, the ATLAS RNTuple code sets a temporary error handler.
Change to setting the handler the first time WithRootErrorHandler gets called.
By the time we're called, there may be multiple threads running, so it is in principle not safe to call SetErrorHandler. However, there shouldn't be anything else in Athena calling it, so in practice it should be ok. As an extra check, we abort if the handler we get back isn't what we set, indicating a potential race.
See ATLASRECTS-7967.
Merge request reports
Activity
This merge request affects 1 package:
- Control/RootUtils
This merge request affects 1 file:
- Control/RootUtils/src/WithRootErrorHandler.cxx
Adding @ssnyder as watcher
added Core analysis-review-required main review-pending-level-1 labels
CI Result SUCCESS (hash 08c729ef)Athena AthSimulation AthGeneration AnalysisBase AthAnalysis externals cmake make tests Full details available on this CI monitor view. Check the JIRA CI status board for known problems
Athena: number of compilation errors 0, warnings 0
AthSimulation: number of compilation errors 0, warnings 0
AthGeneration: number of compilation errors 0, warnings 0
AnalysisBase: number of compilation errors 0, warnings 0
AthAnalysis: number of compilation errors 0, warnings 0
For experts only: Jenkins output [CI-MERGE-REQUEST-EL9 9371] (remote access info)added analysis-review-approved label and removed analysis-review-required label
removed review-pending-level-1 label
added review-approved label
mentioned in commit 3e6e1656
Looks like this one broke the compilation of Clang nightly