|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
   15 #ifndef ATHENASERVICES_RCUSVC_H 
   16 #define ATHENASERVICES_RCUSVC_H 
   21 #include "GaudiKernel/ServiceHandle.h" 
   22 #include "GaudiKernel/IHiveWhiteBoard.h" 
   23 #include "GaudiKernel/IIncidentSvc.h" 
   24 #include "GaudiKernel/IIncidentListener.h" 
   25 #include <unordered_map> 
   40   : 
public extends<AthService, IRCUSvc, IIncidentListener>
 
   84   virtual void handle (
const Incident& inc) 
override;
 
   89   typedef std::unordered_set<IRCUObject*> 
set_t;
 
  102   typedef std::lock_guard<std::recursive_mutex> 
lock_t;
 
  109 #endif // not ATHENASERVICES_RCUSVC_H 
  
std::lock_guard< std::recursive_mutex > lock_t
virtual void add(IRCUObject *obj) override
Add a new RCU object to the set being managed.
RCUSvc(const std::string &name, ISvcLocator *svc)
Standard Gaudi constructor.
std::recursive_mutex m_mutex
Mutex protecting access to m_objs.
virtual void handle(const Incident &inc) override
Gaudi incident handler.
virtual size_t getNumSlots() const override
Return the current number of event slots.
read-copy-update (RCU) style synchronization for Athena.
Service to allow cleaning up RCU objects at the EndEvent.
Some weak symbol referencing magic...
::StatusCode StatusCode
StatusCode definition for legacy code.
ServiceHandle< IIncidentSvc > m_incidentSvc
Gaudi incident service.
std::unordered_set< IRCUObject * > set_t
Set of managed objects.
AthROOTErrorHandlerSvc * svc
Base object class for RCU-style synchronization for Athena.
virtual StatusCode initialize() override
Standard Gaudi initialize method.
ServiceHandle< IInterface > m_hiveWhiteBoardSvc
The hive WB service. Used to get the current number of slots.
virtual StatusCode remove(IRCUObject *obj) override
Remove an RCU object to the set being managed.