ATLAS Offline Software
Loading...
Searching...
No Matches
CondObjDeleter.h
Go to the documentation of this file.
1// This file's extension implies that it's C, but it's really -*- C++ -*-.
2/*
3 * Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration.
4 */
11
12
13#ifndef ATHENAKERNEL_CONDOBJDELETER_H
14#define ATHENAKERNEL_CONDOBJDELETER_H
15
16
19#include "GaudiKernel/EventContext.h"
20#include <mutex>
21
22
23namespace Athena {
24
25
38template <class T>
40 : public CxxUtils::IRangeMapPayloadDeleter<void, EventContext>
41{
42public:
48
49
57 virtual void discard (const void* p) override;
58
59
64 virtual void quiescent (const EventContext& ctx) override;
65
66
67private:
71 static void delPayload (const void* p);
72
75};
76
77
78} // namespace Athena
79
80
82
83
84#endif // not ATHENAKERNEL_CONDOBJDELETER_H
Map from range to payload object, allowing concurrent, lockless reads.
read-copy-update (RCU) style synchronization for Athena.
virtual void quiescent(const EventContext &ctx) override
Mark a slot as quiescent.
CondObjDeleter(Athena::IRCUSvc &rcusvc)
Constructor.
static void delPayload(const void *p)
Function to delete a payload object immediately.
virtual void discard(const void *p) override
Queue an object for deletion.
Athena::RCUObject< T > m_obj
Lifetime manager for discarded objects.
Interface for RCU service.
Definition IRCUSvc.h:40
Wrapper object controlled by RCU synchonization.
Definition RCUObject.h:312
Helper to delete payload objects for ConcurrentRangeMap.
Some weak symbol referencing magic... These are declared in AthenaKernel/getMessageSvc....