Update the Memtester, commit a config file/test for it.
[gem5.git] / src / sim / eventq.cc
index d90d0923a6cc9ed15b8178f8225d44768eda4134..6ae838897b46f58e5054de7e061192d8416a3d5a 100644 (file)
@@ -102,7 +102,7 @@ EventQueue::remove(Event *event)
         prev->next = curr->next;
 }
 
-void
+Event *
 EventQueue::serviceOne()
 {
     Event *event = head;
@@ -110,13 +110,20 @@ EventQueue::serviceOne()
     head = event->next;
 
     // handle action
-    if (!event->squashed())
+    if (!event->squashed()) {
         event->process();
-    else
+        if (event->isExitEvent()) {
+            assert(!event->getFlags(Event::AutoDelete)); // would be silly
+            return event;
+        }
+    } else {
         event->clearFlags(Event::Squashed);
+    }
 
     if (event->getFlags(Event::AutoDelete) && !event->scheduled())
         delete event;
+
+    return NULL;
 }