diff options
-rw-r--r-- | src/systemc/core/scheduler.cc | 8 |
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 |