WPILibC++ 2023.4.3-108-ge5452e3
|
A base class for data structure classes wishing to make iterators ("handles") pointing into themselves fail-fast. More...
Classes | |
class | HandleBase |
A base class for iterator classes ("handles") that wish to poll for iterator invalidating modifications in the underlying data structure. More... | |
Public Member Functions | |
DebugEpochBase () | |
void | incrementEpoch () |
Calling incrementEpoch invalidates all handles pointing into the calling instance. More... | |
~DebugEpochBase () | |
The destructor calls incrementEpoch to make use-after-free bugs more likely to crash deterministically. More... | |
A base class for data structure classes wishing to make iterators ("handles") pointing into themselves fail-fast.
When building without asserts, this class is empty and does nothing.
DebugEpochBase does not by itself track handles pointing into itself. The expectation is that routines touching the handles will poll on isHandleInSync at appropriate points to assert that the handle they're using is still valid.
|
inline |
|
inline |
The destructor calls incrementEpoch to make use-after-free bugs more likely to crash deterministically.
|
inline |
Calling incrementEpoch invalidates all handles pointing into the calling instance.