ATLAS Offline Software
|
Service to allow cleaning up RCU objects at the EndEvent. More...
#include <RCUSvc.h>
Public Member Functions | |
RCUSvc (const std::string &name, ISvcLocator *svc) | |
Standard Gaudi constructor. More... | |
virtual StatusCode | initialize () override |
Standard Gaudi initialize method. More... | |
virtual size_t | getNumSlots () const override |
Return the current number of event slots. More... | |
virtual void | add (IRCUObject *obj) override |
Add a new RCU object to the set being managed. More... | |
virtual StatusCode | remove (IRCUObject *obj) override |
Remove an RCU object to the set being managed. More... | |
virtual void | handle (const Incident &inc) override |
Gaudi incident handler. More... | |
Private Types | |
typedef std::unordered_set< IRCUObject * > | set_t |
Set of managed objects. More... | |
typedef std::lock_guard< std::recursive_mutex > | lock_t |
Private Attributes | |
set_t | m_objs |
ServiceHandle< IInterface > | m_hiveWhiteBoardSvc |
The hive WB service. Used to get the current number of slots. More... | |
ServiceHandle< IIncidentSvc > | m_incidentSvc |
Gaudi incident service. More... | |
std::recursive_mutex | m_mutex |
Mutex protecting access to m_objs. More... | |
Service to allow cleaning up RCU objects at the EndEvent.
For a summary of RCU usage, see AthenaKernel/RCUObject.h. This service keeps a registry of RCU objects. At EndEvent, it declares them quiescent for the current event slot.
|
private |
|
private |
Athena::RCUSvc::RCUSvc | ( | const std::string & | name, |
ISvcLocator * | svc | ||
) |
Standard Gaudi constructor.
name | Service name. |
svc | Service locator. |
name | Service name. @svc Service locator. |
Definition at line 24 of file RCUSvc.cxx.
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Gaudi incident handler.
Declare all managed objects quiescent at EndEvent.
Definition at line 96 of file RCUSvc.cxx.
|
overridevirtual |
|
overridevirtual |
Remove an RCU object to the set being managed.
obj | The RCU object to remove. |
Returns failure if the requested object isn't in the managed set.
Definition at line 80 of file RCUSvc.cxx.
|
private |
|
private |
|
private |