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