![]() |
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 |
1.8.18