60 bool eventfailed =
false;
67 log <<
MSG::DEBUG <<
"New thread detected: 0x" << std::hex << pthread_self() << std::dec
68 <<
". Doing thread local initialization." <<
endmsg;
70 tps->initThisThread();
72 log <<
MSG::ERROR <<
"Unable to get the ThreadPoolSvc to trigger thread local initialization" <<
endmsg;
88 log <<
MSG::FATAL <<
".executeEvent(): Exception with tag=" << Exception.tag() <<
" thrown by " << ts.algName
92 }
catch (
const std::exception& Exception ) {
93 log <<
MSG::FATAL <<
".executeEvent(): Standard std::exception thrown by " << ts.algName <<
endmsg;
97 log <<
MSG::FATAL <<
".executeEvent(): UNKNOWN Exception thrown by " << ts.algName <<
endmsg;
102 m_aess->updateEventStatus( eventfailed, evtCtx );
105 m_scheduler->m_algResourcePool->releaseAlgorithm( ts.algName, iAlgoPtr ).ignore();
109 [schdlr = this->
m_scheduler, ts = std::move( ts )]() {
return schdlr->signoff( ts ); } );
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
AvalancheSchedulerSvc * m_scheduler
IAlgExecStateSvc * m_aess
SmartIF< ISvcLocator > m_serviceLocator
AlgTask(AvalancheSchedulerSvc *scheduler, ISvcLocator *svcLocator, IAlgExecStateSvc *aem, bool asynchronous)
This class represents an entry point to all the event specific data.
Base class from which all concrete algorithm classes should be derived.
SmartIF< IHiveWhiteBoard > & whiteboard() const
Define general base for Gaudi exception.
Abstract interface for a service that manages the Algorithm execution states.
The IAlgorithm is the interface implemented by the Algorithm base class.
virtual StatusCode sysExecute(const EventContext &)=0
System execution. This method invokes the execute() method of a concrete algorithm.
virtual StatusCode selectStore(size_t partitionIndex)=0
Activate an given 'slot' for all subsequent calls within the same thread id.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition of the MsgStream class used to transmit messages.
Helper class to set the application return code in case of early exit (e.g.
Small smart pointer class with automatic reference counting for IInterface.
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
constexpr static const auto FAILURE
constexpr int UnhandledException
thread_local bool ThreadInitDone
GAUDI_API void setCurrentContextEvt(long int evtN)
GAUDI_API void setCurrentContext(const EventContext *ctx)
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
Struct to hold entries in the alg queues.