251c251,253
< profileEvent = new ProfileEvent(this, params()->profile);
---
> profileEvent = new EventFunctionWrapper(
> [this]{ processProfileEvent(); },
> name());
661,665d662
<
< BaseCPU::ProfileEvent::ProfileEvent(BaseCPU *_cpu, Tick _interval)
< : cpu(_cpu), interval(_interval)
< { }
<
667c664
< BaseCPU::ProfileEvent::process()
---
> BaseCPU::processProfileEvent()
669,673c666
< ThreadID size = cpu->threadContexts.size();
< for (ThreadID i = 0; i < size; ++i) {
< ThreadContext *tc = cpu->threadContexts[i];
< tc->profileSample();
< }
---
> ThreadID size = threadContexts.size();
675c668,671
< cpu->schedule(this, curTick() + interval);
---
> for (ThreadID i = 0; i < size; ++i)
> threadContexts[i]->profileSample();
>
> schedule(profileEvent, curTick() + params()->profile);