From: Nathan Binkert Date: Fri, 5 Mar 2004 10:45:45 +0000 (-0500) Subject: constructor option to make the wrapped event autodelete X-Git-Tag: m5_1.0_beta2~84^2~4 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ec6265b044b131fbd9b2b8b97788646c29293d1e;p=gem5.git constructor option to make the wrapped event autodelete --HG-- extra : convert_revision : 8663c874c533685adf21eea968b08b40b7d7b665 --- diff --git a/sim/eventq.hh b/sim/eventq.hh index 60a61fa29..ed37fd4f4 100644 --- a/sim/eventq.hh +++ b/sim/eventq.hh @@ -243,10 +243,13 @@ class EventWrapper : public Event T *object; public: - EventWrapper(T *obj, EventQueue *q = &mainEventQueue, + EventWrapper(T *obj, bool del = false, EventQueue *q = &mainEventQueue, Priority p = Default_Pri) : Event(q, p), object(obj) - {} + { + if (del) + setFlags(AutoDelete); + } void process() { (object->*F)(); } }; @@ -324,6 +327,8 @@ inline void Event::schedule(Tick t) { assert(!scheduled()); + assert(t >= curTick); + setFlags(Scheduled); #if TRACING_ON when_scheduled = curTick;