summaryrefslogtreecommitdiff
path: root/src/sim/eventq.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim/eventq.hh')
-rw-r--r--src/sim/eventq.hh13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/sim/eventq.hh b/src/sim/eventq.hh
index a29942d07..33bb34252 100644
--- a/src/sim/eventq.hh
+++ b/src/sim/eventq.hh
@@ -77,6 +77,9 @@ class Event : public Serializable, public FastAlloc
static const FlagsType AutoSerialize = 0x0008;
static const FlagsType IsExitEvent = 0x0010;
static const FlagsType IsMainQueue = 0x0020;
+#ifdef EVENTQ_DEBUG
+ static const FlagsType Initialized = 0xf000;
+#endif
private:
// The event queue is now a linked list of linked lists. The
@@ -245,6 +248,7 @@ class Event : public Serializable, public FastAlloc
queue = NULL;
#endif
#ifdef EVENTQ_DEBUG
+ flags.set(Initialized);
whenCreated = curTick;
whenScheduled = 0;
#endif
@@ -469,6 +473,9 @@ EventQueue::schedule(Event *event, Tick when)
{
assert(when >= curTick);
assert(!event->scheduled());
+#ifdef EVENTQ_DEBUG
+ assert((event->flags & Event::Initialized) == Event::Initialized);
+#endif
event->setWhen(when, this);
insert(event);
@@ -486,6 +493,9 @@ inline void
EventQueue::deschedule(Event *event)
{
assert(event->scheduled());
+#ifdef EVENTQ_DEBUG
+ assert((event->flags & Event::Initialized) == Event::Initialized);
+#endif
remove(event);
@@ -504,6 +514,9 @@ EventQueue::reschedule(Event *event, Tick when, bool always)
{
assert(when >= curTick);
assert(always || event->scheduled());
+#ifdef EVENTQ_DEBUG
+ assert((event->flags & Event::Initialized) == Event::Initialized);
+#endif
if (event->scheduled())
remove(event);