systemc: Init some values in the scheduler for running without sc_main.
authorGabe Black <gabeblack@google.com>
Thu, 14 Feb 2019 09:42:19 +0000 (01:42 -0800)
committerGabe Black <gabeblack@google.com>
Thu, 21 Feb 2019 22:34:53 +0000 (22:34 +0000)
When running without sc_main, sc_start won't be called, and therefore
runToTime and maxTick won't be initialized. To avoid the scheduler
getting confused and behaving erratically, those values should be
initialized to something that makes sense in situations where there's
no sc_main.

Change-Id: I6ddd7db9ecb36d716eb5ef75e1c38bb99a386092
Reviewed-on: https://gem5-review.googlesource.com/c/16443
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/core/scheduler.cc

index 4b566ca2077c2bfb243459d510b52900573dcb0c..da1dd2d0398ad7706c27c7a16b3b002829e51f0a 100644 (file)
@@ -50,9 +50,11 @@ Scheduler::Scheduler() :
     stopEvent(this, false, StopPriority), _throwUp(nullptr),
     starvationEvent(this, false, StarvationPriority),
     _elaborationDone(false), _started(false), _stopNow(false),
-    _status(StatusOther), maxTickEvent(this, false, MaxTickPriority),
+    _status(StatusOther), maxTick(::MaxTick),
+    maxTickEvent(this, false, MaxTickPriority),
     timeAdvancesEvent(this, false, TimeAdvancesPriority), _numCycles(0),
-    _changeStamp(0), _current(nullptr), initDone(false), runOnce(false)
+    _changeStamp(0), _current(nullptr), initDone(false), runToTime(true),
+    runOnce(false)
 {}
 
 Scheduler::~Scheduler()