summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/python/m5/simulate.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/python/m5/simulate.py b/src/python/m5/simulate.py
index 8529a7472..5673e26c7 100644
--- a/src/python/m5/simulate.py
+++ b/src/python/m5/simulate.py
@@ -184,7 +184,11 @@ def drain(root):
# If we've got some objects that can't drain immediately, then simulate
if unready_objs > 0:
dm.setCount(unready_objs)
- simulate()
+ #WARNING: if a valid exit event occurs while draining, it will not
+ # get returned to the user script
+ exit_event = simulate()
+ while exit_event.getCause() != 'Finished drain':
+ exit_event = simulate()
else:
all_drained = True
internal.drain.cleanupDrainManager(dm)