-
- Downloads
Algorithm Execution State Service
Introduction of AlgExecStateSvc All event state information removed from Algorithm base class (m_filterPassed, m_isExecuted) as it will cause difficulties with re-entrant Algorithms. event success/fail flag removed from EventContext These flags are moved to be under control of a new service, the AlgExecStateSvc, which keeps track of the execution state of all Algorithms, and the Event as a whole. Algorithm status kept in a new class ```AlgExecState``` which has ``` bool m_filterPassed {true}; bool m_isExecuted {false}; StatusCode m_execStatus {StatusCode::FAILURE}; ``` AlgExecStateSvc holds an AlgExecState for each Algorithm in each Event Slot, as well as an overall ```EventStatus``` for each EventSlot, which can be one of ``` Invalid = 0, Success = 1, AlgFail = 2, AlgStall = 3, Other = 4 ``` Algorithms add themselves to the AlgExecStateSvc upon initialization, but the Service's initialization of the data structures is deferred until the first time ```AlgExecStateSvc::reset()``` is called, at which point it's probably safe to figure out if there's a WhiteBoard, and the number of slots to allocate. The EventLoopMgr should call ```AlgExecStateSvc::reset()``` at the start of each event. If it's a concurrent EventLoopMgr, it should be ```AlgExecStateSvc::reset(EventContext)```, after the EventContext object has been updated to reflect the new event. Also added an EventContext object to the MinimalEventLoopMgr, so that serial/concurrent behaviour is similar. Concurrent queries to the AlgExecStateSvc must contain the EventContext, so the correct EventSlot can be determined. Serial access is via methods that don't have the EventContext as a parameter. For access from Algorithm base class (eg from setFilterPassed, isExecuted, etc), if the EventContext ptr (m_event_context) in the Algorithm is null, we assume we're running serially. See merge request !197
No related branches found
No related tags found
Showing
- GaudiAlg/src/lib/GaudiSequencer.cpp 1 addition, 4 deletionsGaudiAlg/src/lib/GaudiSequencer.cpp
- GaudiAlg/src/lib/Sequencer.cpp 1 addition, 0 deletionsGaudiAlg/src/lib/Sequencer.cpp
- GaudiCoreSvc/CMakeLists.txt 1 addition, 0 deletionsGaudiCoreSvc/CMakeLists.txt
- GaudiCoreSvc/src/AlgExecStateSvc/AlgExecStateSvc.cpp 454 additions, 0 deletionsGaudiCoreSvc/src/AlgExecStateSvc/AlgExecStateSvc.cpp
- GaudiCoreSvc/src/AlgExecStateSvc/AlgExecStateSvc.h 87 additions, 0 deletionsGaudiCoreSvc/src/AlgExecStateSvc/AlgExecStateSvc.h
- GaudiCoreSvc/src/IncidentSvc/DataOnDemandSvc.cpp 6 additions, 0 deletionsGaudiCoreSvc/src/IncidentSvc/DataOnDemandSvc.cpp
- GaudiExamples/options/ROOT_IO/Write.py 1 addition, 0 deletionsGaudiExamples/options/ROOT_IO/Write.py
- GaudiExamples/tests/qmtest/refs/Aida2Root.ref 16 additions, 13 deletionsGaudiExamples/tests/qmtest/refs/Aida2Root.ref
- GaudiExamples/tests/qmtest/refs/AlgTools2.ref 8 additions, 7 deletionsGaudiExamples/tests/qmtest/refs/AlgTools2.ref
- GaudiExamples/tests/qmtest/refs/ColorMsg.ref 26 additions, 8 deletionsGaudiExamples/tests/qmtest/refs/ColorMsg.ref
- GaudiExamples/tests/qmtest/refs/EvtColsEx/Write.ref 9 additions, 8 deletionsGaudiExamples/tests/qmtest/refs/EvtColsEx/Write.ref
- GaudiExamples/tests/qmtest/refs/GaudiCommonTests.ref 10 additions, 8 deletionsGaudiExamples/tests/qmtest/refs/GaudiCommonTests.ref
- GaudiExamples/tests/qmtest/refs/Histograms.ref 13 additions, 11 deletionsGaudiExamples/tests/qmtest/refs/Histograms.ref
- GaudiExamples/tests/qmtest/refs/History.ref 30 additions, 10 deletionsGaudiExamples/tests/qmtest/refs/History.ref
- GaudiExamples/tests/qmtest/refs/MetaDataSvc.ref 5 additions, 6 deletionsGaudiExamples/tests/qmtest/refs/MetaDataSvc.ref
- GaudiExamples/tests/qmtest/refs/ROOT_IO/ExtCollWrite.ref 10 additions, 9 deletionsGaudiExamples/tests/qmtest/refs/ROOT_IO/ExtCollWrite.ref
- GaudiExamples/tests/qmtest/refs/ROOT_IO/Read.ref 53 additions, 53 deletionsGaudiExamples/tests/qmtest/refs/ROOT_IO/Read.ref
- GaudiExamples/tests/qmtest/refs/ROOT_IO/Write.ref 41 additions, 31 deletionsGaudiExamples/tests/qmtest/refs/ROOT_IO/Write.ref
- GaudiExamples/tests/qmtest/refs/RandomNumber.ref 16 additions, 7 deletionsGaudiExamples/tests/qmtest/refs/RandomNumber.ref
- GaudiExamples/tests/qmtest/refs/TBB/GaudiCommonTests.ref 14 additions, 13 deletionsGaudiExamples/tests/qmtest/refs/TBB/GaudiCommonTests.ref
Loading
Please register or sign in to comment