summaryrefslogtreecommitdiff
path: root/src/systemc/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/core')
-rw-r--r--src/systemc/core/process.cc12
-rw-r--r--src/systemc/core/process.hh2
2 files changed, 14 insertions, 0 deletions
diff --git a/src/systemc/core/process.cc b/src/systemc/core/process.cc
index 3e629c3ec..5d5c5216f 100644
--- a/src/systemc/core/process.cc
+++ b/src/systemc/core/process.cc
@@ -104,6 +104,18 @@ SensitivityEventOrList::~SensitivityEventOrList()
Event::getFromScEvent(e)->delSensitivity(this);
}
+void
+SensitivityTimeoutAndEventAndList::notifyWork(Event *e)
+{
+ if (e) {
+ // An event went off which must be part of the sc_event_and_list.
+ SensitivityEventAndList::notifyWork(e);
+ } else {
+ // There's no inciting event, so this must be a timeout.
+ SensitivityTimeout::notifyWork(e);
+ }
+}
+
class UnwindExceptionReset : public ::sc_core::sc_unwind_exception
{
diff --git a/src/systemc/core/process.hh b/src/systemc/core/process.hh
index 267a7ed3d..fe75aa7de 100644
--- a/src/systemc/core/process.hh
+++ b/src/systemc/core/process.hh
@@ -138,6 +138,8 @@ class SensitivityTimeoutAndEventAndList :
Sensitivity(p), SensitivityTimeout(p, t),
SensitivityEventAndList(p, eal)
{}
+
+ void notifyWork(Event *e) override;
};
class SensitivityTimeoutAndEventOrList :