Skip to content

WIP: Additions to control re-entrancy of Algorithms and AlgTools

Charles Leggett requested to merge leggett/Gaudi:dev/ReEntTools into master

Atlas is already using re-entrant Algs in its AthenaBaseComps derived classes (AthReentrantAlgorithm), but the equivalent support is lacking on the Gaudi side since the re-entrancy MR stalled. We need to be able to identify at runtime if an Alg/Tool is re-entrant, so as to execute it in the proper way.

This MR adds methods to Algorithm and AlgTool to set/report re-entrancy. This status has to be modifiable at runtime, as an Algorithm does not know if its AlgTools are re-entrant until the end of initialize(), and if a re-entrant Algorithm uses a non-re-entrant Tool, it must be demoted to being non-re-entrant as well. We can benefit from the auto-retrieval of ToolHandles to propagate this information up to the parent Algorithm, and demote it as necessary.

Edited by Marco Clemencic

Merge request reports