44 return StatusCode::SUCCESS;
57 return wb->getNumberOfStores();
83 set_t::iterator it =
m_objs.find (obj);
85 return StatusCode::FAILURE;
87 return StatusCode::SUCCESS;
98 if (inc.type() == IncidentType::EndEvent) {
102 std::vector<IRCUObject*> objs (
m_objs.begin(),
m_objs.end());
105 p->quiescent (inc.context());
#define ATH_CHECK
Evaluate an expression and check for errors.
Service to allow cleaning up RCU objects at the EndEvent.
Base object class for RCU-style synchronization for Athena.
Interface for RCU service.
RCUSvc(const std::string &name, ISvcLocator *svc)
Standard Gaudi constructor.
ServiceHandle< IInterface > m_hiveWhiteBoardSvc
The hive WB service. Used to get the current number of slots.
virtual size_t getNumSlots() const override
Return the current number of event slots.
virtual StatusCode initialize() override
Standard Gaudi initialize method.
std::recursive_mutex m_mutex
Mutex protecting access to m_objs.
virtual void add(IRCUObject *obj) override
Add a new RCU object to the set being managed.
virtual StatusCode remove(IRCUObject *obj) override
Remove an RCU object to the set being managed.
ServiceHandle< IIncidentSvc > m_incidentSvc
Gaudi incident service.
std::lock_guard< std::recursive_mutex > lock_t
virtual void handle(const Incident &inc) override
Gaudi incident handler.
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....