summaryrefslogtreecommitdiff
path: root/src/cpu/base.cc
diff options
context:
space:
mode:
authorSean Wilson <spwilson2@wisc.edu>2017-06-28 08:52:08 -0500
committerSean Wilson <spwilson2@wisc.edu>2017-07-12 20:07:05 +0000
commit8c1ea47b3c2fc90378eb16f3ad92d4ae522567c5 (patch)
tree4ac53d611aaedd5728e9f1100d43d166634ab5a8 /src/cpu/base.cc
parent741261f10bb308cdc200c5dfd8eb68567349cf19 (diff)
downloadgem5-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.cc22
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