diff options
author | Gabe Black <gabeblack@google.com> | 2018-08-16 18:59:06 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-09-25 23:49:15 +0000 |
commit | 54f3a76afe055fa62a818b8355dd8c6f8bd39856 (patch) | |
tree | d4041cffe05907b049012fe73d13b3aa440ca13d /src/systemc/core/event.hh | |
parent | 9556aa3232ac6f782d715c15d2b4b62f5e7cfb9e (diff) | |
download | gem5-54f3a76afe055fa62a818b8355dd8c6f8bd39856.tar.xz |
systemc: Rework how delta and timed notifications/timeouts are tracked.
Rather than delegating them entirely to the gem5 event queue and using
priorities to ensure the right thing happens, this change adds a few
new structures which keep track of them and give the scheduler more
control over what happens and in what order. The old scheme was mostly
correct, but there were some competing situations which made it next
to impossible to make everything happen at the right time.
Change-Id: I43f4dd6ddfa488a31073c0318bb41369b1a6117d
Reviewed-on: https://gem5-review.googlesource.com/12213
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/core/event.hh')
-rw-r--r-- | src/systemc/core/event.hh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/systemc/core/event.hh b/src/systemc/core/event.hh index f9d3b2040..57d3f3f6f 100644 --- a/src/systemc/core/event.hh +++ b/src/systemc/core/event.hh @@ -37,6 +37,7 @@ #include "sim/eventq.hh" #include "systemc/core/list.hh" #include "systemc/core/object.hh" +#include "systemc/core/sched_event.hh" #include "systemc/ext/core/sc_prim.hh" #include "systemc/ext/core/sc_time.hh" @@ -104,8 +105,7 @@ class Event sc_core::sc_object *parent; - void delayedNotify(); - EventWrapper<Event, &Event::delayedNotify> delayedNotifyEvent; + ScEvent delayedNotify; mutable std::set<Sensitivity *> sensitivities; }; |