11 #ifndef GAUDIHIVE_ALGTASK_H 12 #define GAUDIHIVE_ALGTASK_H 31 namespace Concurrency {
64 bool eventfailed =
false;
72 <<
". Doing thread local initialization." <<
endmsg;
74 tps->initThisThread();
76 log <<
MSG::ERROR <<
"Unable to get the ThreadPoolSvc to trigger thread local initialization" <<
endmsg;
Struct to hold entries in the alg queues.
Definition of the MsgStream class used to transmit messages.
Define general base for Gaudi exception.
Helper class to set the application return code in case of early exit (e.g.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
IAlgExecStateSvc * m_aess
SmartIF< IHiveWhiteBoard > & whiteboard() const
virtual const std::string & tag() const
name tag for the exception, or exception type
AlgTask(AvalancheSchedulerSvc::TaskSpec &&ts, AvalancheSchedulerSvc *scheduler, ISvcLocator *svcLocator, IAlgExecStateSvc *aem)
EventContext * contextPtr
AvalancheSchedulerSvc * m_scheduler
This class represents an entry point to all the event specific data.
constexpr int UnhandledException
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
AlgTask(AvalancheSchedulerSvc *scheduler, ISvcLocator *svcLocator, IAlgExecStateSvc *aem)
virtual StatusCode selectStore(size_t partitionIndex)=0
Activate an given 'slot' for all subsequent calls within the same thread id.
SmartIF< IAlgResourcePool > m_algResourcePool
Cache for the algorithm resource pool.
GAUDI_API ISvcLocator * svcLocator()
Abstract interface for a service that manages the Algorithm execution states.
virtual StatusCode sysExecute(const EventContext &)=0
System execution. This method invokes the execute() method of a concrete algorithm.
AvalancheSchedulerSvc::TaskSpec m_ts
The IAlgorithm is the interface implemented by the Algorithm base class.
GAUDI_API void setCurrentContext(const EventContext *ctx)
virtual void updateEventStatus(const bool &b, const EventContext &ctx)=0
const StatusCode & ignore() const
Ignore/check StatusCode.
thread_local bool ThreadInitDone
tbb::concurrent_priority_queue< TaskSpec, AlgQueueSort > m_scheduledQueue
Queues for scheduled algorithms.
Base class from which all concrete algorithm classes should be derived.
constexpr static const auto FAILURE
GAUDI_API void setCurrentContextEvt(long int evtN)
SmartIF< ISvcLocator > m_serviceLocator
virtual StatusCode releaseAlgorithm(std::string_view name, IAlgorithm *&algo)=0
Release a certain algorithm.
Header file for std:chrono::duration-based Counters.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
tbb::concurrent_bounded_queue< action > m_actionsQueue
Queue where closures are stored and picked for execution.