diff options
author | Sean Wilson <spwilson2@wisc.edu> | 2017-06-28 08:52:08 -0500 |
---|---|---|
committer | Sean Wilson <spwilson2@wisc.edu> | 2017-07-12 20:07:05 +0000 |
commit | 8c1ea47b3c2fc90378eb16f3ad92d4ae522567c5 (patch) | |
tree | 4ac53d611aaedd5728e9f1100d43d166634ab5a8 /src/cpu/base.cc | |
parent | 741261f10bb308cdc200c5dfd8eb68567349cf19 (diff) | |
download | gem5-8c1ea47b3c2fc90378eb16f3ad92d4ae522567c5.tar.xz |
cpu: Refactor some Event subclasses to lambdas
Change-Id: If765c6100d67556f157e4e61aa33c2b7eeb8d2f0
Signed-off-by: Sean Wilson <spwilson2@wisc.edu>
Reviewed-on: https://gem5-review.googlesource.com/3923
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/cpu/base.cc')
-rw-r--r-- | src/cpu/base.cc | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/cpu/base.cc b/src/cpu/base.cc index 78b25caf8..6f76b8c6f 100644 --- a/src/cpu/base.cc +++ b/src/cpu/base.cc @@ -248,7 +248,9 @@ BaseCPU::BaseCPU(Params *p, bool is_checker) if (FullSystem) { if (params()->profile) - profileEvent = new ProfileEvent(this, params()->profile); + profileEvent = new EventFunctionWrapper( + [this]{ processProfileEvent(); }, + name()); } tracer = params()->tracer; @@ -658,21 +660,15 @@ BaseCPU::flushTLBs() } } - -BaseCPU::ProfileEvent::ProfileEvent(BaseCPU *_cpu, Tick _interval) - : cpu(_cpu), interval(_interval) -{ } - void -BaseCPU::ProfileEvent::process() +BaseCPU::processProfileEvent() { - ThreadID size = cpu->threadContexts.size(); - for (ThreadID i = 0; i < size; ++i) { - ThreadContext *tc = cpu->threadContexts[i]; - tc->profileSample(); - } + ThreadID size = threadContexts.size(); + + for (ThreadID i = 0; i < size; ++i) + threadContexts[i]->profileSample(); - cpu->schedule(this, curTick() + interval); + schedule(profileEvent, curTick() + params()->profile); } void |