summaryrefslogtreecommitdiff
path: root/src/systemc/core/event.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/core/event.cc')
-rw-r--r--src/systemc/core/event.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/systemc/core/event.cc b/src/systemc/core/event.cc
index 61fa80c8b..0daca12e1 100644
--- a/src/systemc/core/event.cc
+++ b/src/systemc/core/event.cc
@@ -145,9 +145,18 @@ Event::notify()
if (delayedNotify.scheduled())
scheduler.deschedule(&delayedNotify);
- auto local_sensitivities = sensitivities;
- for (auto s: local_sensitivities)
+ for (auto s: staticSensitivities)
s->notify(this);
+ DynamicSensitivities &ds = dynamicSensitivities;
+ int size = ds.size();
+ int pos = 0;
+ while (pos < size) {
+ if (ds[pos]->notify(this))
+ ds[pos] = ds[--size];
+ else
+ pos++;
+ }
+ ds.resize(size);
}
void