Gabe Black has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/12224

Change subject: systemc: Make sure no delta cycles are scheduled when stopping.
......................................................................

systemc: Make sure no delta cycles are scheduled when stopping.

If the readyEvent is still scheduled when sc_main completes, gem5 will
return to it's main fiber and keep executing events, including that
one. That means a delta cycle will run even after sc_main is complete.
This change ensures that the readyEvent has been descheduled as part
of stopping.

Change-Id: I9479ac4ebff3335477b371b02efa6d44c70cbc8e
---
M src/systemc/core/scheduler.cc
1 file changed, 4 insertions(+), 0 deletions(-)



diff --git a/src/systemc/core/scheduler.cc b/src/systemc/core/scheduler.cc
index 6762086..f930bb5 100644
--- a/src/systemc/core/scheduler.cc
+++ b/src/systemc/core/scheduler.cc
@@ -272,6 +272,10 @@
 {
     _stopped = true;
     kernel->stop();
+
+    if (readyEvent.scheduled())
+        eq->deschedule(&readyEvent);
+
     runOnce = false;
     scMain->run();
 }

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/12224
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I9479ac4ebff3335477b371b02efa6d44c70cbc8e
Gerrit-Change-Number: 12224
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to