summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-08-21 18:59:13 -0700
committerGabe Black <gabeblack@google.com>2018-09-25 23:54:09 +0000
commit9f177a190b5114554d0138c82b08c83f3063d91e (patch)
tree1b6189151aabd4f3b818a9195e9aac6a16c2055b
parent508929475d776645bcdb15956d7a98888dc54669 (diff)
downloadgem5-9f177a190b5114554d0138c82b08c83f3063d91e.tar.xz
systemc: Make sure an immediate notification overrides a delayed one.
If an event has a delayed notification pending, that should be cleared if it's later notified immediately. Change-Id: I4272f6b47a41d80756769f3fe69069a00016dbd6 Reviewed-on: https://gem5-review.googlesource.com/12223 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
-rw-r--r--src/systemc/core/event.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/systemc/core/event.cc b/src/systemc/core/event.cc
index 6e35da1c8..77e47fba6 100644
--- a/src/systemc/core/event.cc
+++ b/src/systemc/core/event.cc
@@ -122,6 +122,10 @@ Event::getParentObject() const
void
Event::notify()
{
+ // An immediate notification overrides any pending delayed notification.
+ if (delayedNotify.scheduled())
+ scheduler.deschedule(&delayedNotify);
+
auto local_sensitivities = sensitivities;
for (auto s: local_sensitivities)
s->notify(this);