From 05eda56e668f3a04c1f2600cd1a887ecd6ee1961 Mon Sep 17 00:00:00 2001 From: Liam Date: Sat, 23 Dec 2023 14:20:10 -0500 Subject: core_timing: handle concurrent unscheduling of looping events --- src/core/core_timing.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/core/core_timing.h') diff --git a/src/core/core_timing.h b/src/core/core_timing.h index d8cd599ee..7e4dff7f3 100644 --- a/src/core/core_timing.h +++ b/src/core/core_timing.h @@ -27,12 +27,15 @@ using TimedCallback = std::function( /// Contains the characteristics of a particular event. struct EventType { explicit EventType(TimedCallback&& callback_, std::string&& name_) - : callback{std::move(callback_)}, name{std::move(name_)} {} + : callback{std::move(callback_)}, name{std::move(name_)}, sequence_number{0} {} /// The event's callback function. TimedCallback callback; /// A pointer to the name of the event. const std::string name; + /// A monotonic sequence number, incremented when this event is + /// changed externally. + size_t sequence_number; }; enum class UnscheduleEventType { -- cgit v1.2.3