47c47,48
< _sc_event(_sc_event), _basename(_basename), delayedNotifyEvent(this)
---
> _sc_event(_sc_event), _basename(_basename),
> delayedNotify([this]() { this->notify(); })
93,94c94,95
< if (delayedNotifyEvent.scheduled())
< scheduler.deschedule(&delayedNotifyEvent);
---
> if (delayedNotify.scheduled())
> scheduler.deschedule(&delayedNotify);
130,136d130
< Event::delayedNotify()
< {
< scheduler.eventHappened();
< notify();
< }
<
< void
139,144c133,134
< //XXX We're assuming the systemc time resolution is in ps.
< Tick new_tick = t.value() * SimClock::Int::ps + scheduler.getCurTick();
< if (delayedNotifyEvent.scheduled()) {
< Tick old_tick = delayedNotifyEvent.when();
<
< if (new_tick >= old_tick)
---
> if (delayedNotify.scheduled()) {
> if (scheduler.delayed(t) >= delayedNotify.when())
147c137
< scheduler.deschedule(&delayedNotifyEvent);
---
> scheduler.deschedule(&delayedNotify);
149,150c139
<
< scheduler.schedule(&delayedNotifyEvent, new_tick);
---
> scheduler.schedule(&delayedNotify, t);
156,157c145,146
< if (delayedNotifyEvent.scheduled())
< scheduler.deschedule(&delayedNotifyEvent);
---
> if (delayedNotify.scheduled())
> scheduler.deschedule(&delayedNotify);