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
Reviewed-on: https://gem5-review.googlesource.com/12224
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
Gabe Black
2018-08-21 19:10:47 -07:00
parent 9f177a190b
commit c42dfdeda8

View File

@@ -272,6 +272,10 @@ Scheduler::stop()
{
_stopped = true;
kernel->stop();
if (readyEvent.scheduled())
eq->deschedule(&readyEvent);
runOnce = false;
scMain->run();
}