14#ifndef ATHENAKERNEL_RCUUPDATER_H
15#define ATHENAKERNEL_RCUUPDATER_H
20#include "GaudiKernel/EventContext.h"
21#include "GaudiKernel/ThreadLocalContext.h"
52 template <
typename...
Args>
read-copy-update (RCU) style synchronization for Athena.
read-copy-update (RCU) style synchronization for Athena.
Interface for RCU service.
Wrapper object controlled by RCU synchonization.
RCUObject< T > m_obj
The managed object.
void update(std::unique_ptr< T > p, const Context_t &ctx)
Install a new object.
static const Context_t & defaultContext()
Return the current event context.
const T & get() const
Return a reference to the current object.
EventContext Context_t
Execution context type.
RCUUpdater(IRCUSvc &rcusvc, Args &&... args)
Constructor.
void quiescent(const Context_t &ctx)
Mark that an event slot is not referencing this object.
void discard(std::unique_ptr< T > p)
Queue an object for later deletion.
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....