Go to the documentation of this file.
11 #ifndef GAUDIHIVE_ALGTASK_H
12 #define GAUDIHIVE_ALGTASK_H
31 namespace Concurrency {
61 bool eventfailed =
false;
69 <<
". Doing thread local initialization." <<
endmsg;
71 tps->initThisThread();
73 log <<
MSG::ERROR <<
"Unable to get the ThreadPoolSvc to trigger thread local initialization" <<
endmsg;
89 log <<
MSG::FATAL <<
".executeEvent(): Exception with tag=" << Exception.tag() <<
" thrown by " <<
ts.algName
virtual StatusCode sysExecute(const EventContext &)=0
System execution. This method invokes the execute() method of a concrete algorithm.
GAUDI_API void setCurrentContext(const EventContext *ctx)
Struct to hold entries in the alg queues.
thread_local bool ThreadInitDone
Helper class to set the application return code in case of early exit (e.g.
SmartIF< ISvcLocator > m_serviceLocator
SmartIF< IHiveWhiteBoard > & whiteboard() const
GAUDI_API ISvcLocator * svcLocator()
Base class from which all concrete algorithm classes should be derived.
Abstract interface for a service that manages the Algorithm execution states.
constexpr int UnhandledException
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
SmartIF< IAlgResourcePool > m_algResourcePool
Cache for the algorithm resource pool.
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
bool next(TaskSpec &ts, bool asynchronous)
AlgTask(AvalancheSchedulerSvc *scheduler, ISvcLocator *svcLocator, IAlgExecStateSvc *aem, bool asynchronous)
IAlgExecStateSvc * m_aess
tbb::concurrent_bounded_queue< action > m_actionsQueue
Queue where closures are stored and picked for execution.
constexpr static const auto FAILURE
virtual void updateEventStatus(const bool &b, const EventContext &ctx)=0
GAUDI_API void setCurrentContextEvt(long int evtN)
AvalancheSchedulerSvc * m_scheduler