debug: fix help output
[gem5.git] / src / python / m5 / event.py
index 2d649746465616b934636f3d382ea295ed995a34..35095599d7f8b78f2f9768fbaa2310e018442ad7 100644 (file)
 #
 # Authors: Nathan Binkert
 
-from internal.event import create
-from internal.event import SimLoopExitEvent as SimExit
+import m5
+import internal.event
+
+from internal.event import PythonEvent, SimLoopExitEvent as SimExit
+
+mainq = internal.event.cvar.mainEventQueue
+
+def create(obj, priority=None):
+    if priority is None:
+        priority = Event.Default_Pri
+    return PythonEvent(obj, priority)
 
-class ProgressEvent(object):
-    def __init__(self, period):
-        self.period = int(period)
-        self.schedule()
 
-    def schedule(self):
-        create(self, m5.curTick() + self.period)
+# As a reminder, priorities found in sim/eventq.hh are stuck into the
+# Event class by swig
+class Event(PythonEvent):
+    def __init__(self, priority=None):
+        if priority is None:
+            priority = Event.Default_Pri
+        super(Event, self).__init__(self, priority)
+
+class ProgressEvent(Event):
+    def __init__(self, eventq, period):
+        super(ProgressEvent, self).__init__()
+        self.period = int(period)
+        self.eventq = eventq
+        self.eventq.schedule(self, m5.curTick() + self.period)
 
     def __call__(self):
         print "Progress! Time now %fs" % (m5.curTick()/1e12)
-        self.schedule()
+        self.eventq.schedule(self, m5.curTick() + self.period)
+
+__all__ = [ 'create', 'Event', 'ProgressEvent', 'SimExit', 'mainq' ]