From: Gabe Black Date: Wed, 22 Aug 2018 02:10:47 +0000 (-0700) Subject: systemc: Make sure no delta cycles are scheduled when stopping. X-Git-Tag: v19.0.0.0~1745 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c42dfdeda8ca198bf076817431f41d24463e1cda;p=gem5.git 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 Maintainer: Gabe Black --- diff --git a/src/systemc/core/scheduler.cc b/src/systemc/core/scheduler.cc index 6762086a0..f930bb515 100644 --- a/src/systemc/core/scheduler.cc +++ b/src/systemc/core/scheduler.cc @@ -272,6 +272,10 @@ Scheduler::stop() { _stopped = true; kernel->stop(); + + if (readyEvent.scheduled()) + eq->deschedule(&readyEvent); + runOnce = false; scMain->run(); }