16 namespace Concurrency {
25 if ( !m_scheduler->m_scheduledQueue.try_pop( queuePop ) )
return nullptr;
34 bool eventfailed =
false;
45 <<
". Doing thread local initialization." <<
endmsg;
47 tps = m_serviceLocator->service(
"ThreadPoolSvc" );
49 log <<
MSG::ERROR <<
"unable to get the ThreadPoolSvc to trigger thread local initialization" <<
endmsg;
68 log <<
MSG::FATAL <<
".executeEvent(): Exception with tag=" << Exception.
tag() <<
" thrown by " << algName
73 log <<
MSG::FATAL <<
".executeEvent(): Standard std::exception thrown by " << algName <<
endmsg;
77 log <<
MSG::FATAL <<
".executeEvent(): UNKNOWN Exception thrown by " << algName <<
endmsg;
84 m_aess->updateEventStatus( eventfailed, evtCtx );
87 StatusCode releaseAlgSC = m_scheduler->m_algResourcePool->releaseAlgorithm( algName, iAlgoPtr );
89 log <<
MSG::ERROR <<
"[Event " << evtCtx.
evt() <<
", Slot " << evtCtx.
slot() <<
"] " 90 <<
"Instance of algorithm " << algName <<
" could not be properly put back." <<
endmsg;
94 m_scheduler->m_actionsQueue.push( [
this, queuePop]() ->
StatusCode {
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.
SmartIF< IHiveWhiteBoard > & whiteboard() const
virtual void initThisThread()=0
Do thread local initialization of current thread.
EventContext * contextPtr
Struct to hold entries in the alg queues.
This class represents an entry point to all the event specific data.
tbb::task * execute() override
constexpr int UnhandledException
virtual StatusCode selectStore(size_t partitionIndex)=0
Activate an given 'slot' for all subsequent calls within the same thread id.
This class is used for returning status codes from appropriate routines.
virtual StatusCode sysExecute(const EventContext &)=0
System execution. This method invokes the execute() method of a concrete algorithm.
virtual const std::string & tag() const
name tag for the exception, or exception type
The IAlgorithm is the interface implemented by the Algorithm base class.
GAUDI_API void setCurrentContext(const EventContext *ctx)
thread_local bool ThreadInitDone
bool isValid() const
Allow for check if smart pointer is valid.
Base class from which all concrete algorithm classes should be derived.
constexpr static const auto FAILURE
GAUDI_API void setCurrentContextEvt(long int evtN)
Header file for std:chrono::duration-based Counters.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.