ATLAS Offline Software
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  */
13 #ifndef ATHENAKERNEL_CONDOBJDELETER_H
14 #define ATHENAKERNEL_CONDOBJDELETER_H
15 
16 
17 #include "AthenaKernel/RCUObject.h"
19 #include "GaudiKernel/EventContext.h"
20 #include <mutex>
21 
22 
23 namespace Athena {
24 
25 
38 template <class T>
40  : public CxxUtils::IRangeMapPayloadDeleter<void, EventContext>
41 {
42 public:
48 
49 
57  virtual void discard (const void* p) override;
58 
59 
64  virtual void quiescent (const EventContext& ctx) override;
65 
66 
67 private:
71  static void delPayload (const void* p);
72 
75 };
76 
77 
78 } // namespace Athena
79 
80 
82 
83 
84 #endif // not ATHENAKERNEL_CONDOBJDELETER_H
CxxUtils::IRangeMapPayloadDeleter
Helper to delete payload objects for ConcurrentRangeMap.
Definition: ConcurrentRangeMap.h:45
Athena::RCUObject
Wrapper object controlled by RCU synchonization.
Definition: RCUObject.h:322
Athena::CondObjDeleter::discard
virtual void discard(const void *p) override
Queue an object for deletion.
RCUObject.h
read-copy-update (RCU) style synchronization for Athena.
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Athena::CondObjDeleter
Deletion object for conditions payloads.
Definition: CondObjDeleter.h:41
Athena::CondObjDeleter::quiescent
virtual void quiescent(const EventContext &ctx) override
Mark a slot as quiescent.
Athena
Some weak symbol referencing magic...
Definition: AthLegacySequence.h:21
Athena::IRCUSvc
Interface for RCU service.
Definition: IRCUSvc.h:40
Athena::CondObjDeleter::m_obj
Athena::RCUObject< T > m_obj
Lifetime manager for discarded objects.
Definition: CondObjDeleter.h:74
Athena::CondObjDeleter::delPayload
static void delPayload(const void *p)
Function to delete a payload object immediately.
ConcurrentRangeMap.h
Map from range to payload object, allowing concurrent, lockless reads.
CondObjDeleter.icc
Athena::CondObjDeleter::CondObjDeleter
CondObjDeleter(Athena::IRCUSvc &rcusvc)
Constructor.