summaryrefslogtreecommitdiff
path: root/src/systemc/core/scheduler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/core/scheduler.cc')
-rw-r--r--src/systemc/core/scheduler.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/systemc/core/scheduler.cc b/src/systemc/core/scheduler.cc
index 44c56467d..d2e87f25d 100644
--- a/src/systemc/core/scheduler.cc
+++ b/src/systemc/core/scheduler.cc
@@ -210,6 +210,14 @@ Scheduler::pause()
_paused = true;
kernel->status(::sc_core::SC_PAUSED);
scMain->run();
+
+ // If the ready event is supposed to run now, run it inline so that it
+ // preempts any delta notifications which were scheduled while we were
+ // paused.
+ if (readyEvent.scheduled()) {
+ eq->deschedule(&readyEvent);
+ runReady();
+ }
}
void