diff options
Diffstat (limited to 'src/systemc/core/scheduler.cc')
-rw-r--r-- | src/systemc/core/scheduler.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/systemc/core/scheduler.cc b/src/systemc/core/scheduler.cc index 9deb07733..ae1aa899f 100644 --- a/src/systemc/core/scheduler.cc +++ b/src/systemc/core/scheduler.cc @@ -193,7 +193,8 @@ Scheduler::ready(Process *p) else readyListThreads.pushLast(p); - scheduleReadyEvent(); + if (!inEvaluate()) + scheduleReadyEvent(); } void @@ -234,7 +235,8 @@ void Scheduler::requestUpdate(Channel *c) { updateList.pushLast(c); - scheduleReadyEvent(); + if (!inEvaluate()) + scheduleReadyEvent(); } void @@ -274,8 +276,10 @@ Scheduler::runReady() _changeStamp++; } - if (_stopNow) + if (_stopNow) { + status(StatusOther); return; + } runUpdate(); runDelta(); |