16#ifndef WPIUTIL_WPI_EPOCHTRACKER_H
17#define WPIUTIL_WPI_EPOCHTRACKER_H
62 HandleBase() : EpochAddress(nullptr), EpochAtCreation(UINT64_MAX) {}
65 : EpochAddress(&Parent->Epoch), EpochAtCreation(Parent->Epoch) {}
A base class for iterator classes ("handles") that wish to poll for iterator invalidating modificatio...
Definition: EpochTracker.h:57
bool isHandleInSync() const
Returns true if the DebugEpochBase this Handle is linked to has not called incrementEpoch on itself s...
Definition: EpochTracker.h:70
HandleBase(const DebugEpochBase *Parent)
Definition: EpochTracker.h:64
const void * getEpochAddress() const
Returns a pointer to the epoch word stored in the data structure this handle points into.
Definition: EpochTracker.h:75
HandleBase()
Definition: EpochTracker.h:62
A base class for data structure classes wishing to make iterators ("handles") pointing into themselve...
Definition: EpochTracker.h:35
void incrementEpoch()
Calling incrementEpoch invalidates all handles pointing into the calling instance.
Definition: EpochTracker.h:43
~DebugEpochBase()
The destructor calls incrementEpoch to make use-after-free bugs more likely to crash deterministicall...
Definition: EpochTracker.h:47
DebugEpochBase()
Definition: EpochTracker.h:39
::uint64_t uint64_t
Definition: Meta.h:58
Definition: AprilTagFieldLayout.h:18