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:
@@ -272,6 +272,10 @@ Scheduler::stop()
|
||||
{
|
||||
_stopped = true;
|
||||
kernel->stop();
|
||||
|
||||
if (readyEvent.scheduled())
|
||||
eq->deschedule(&readyEvent);
|
||||
|
||||
runOnce = false;
|
||||
scMain->run();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user