sclass SingleThreadProfiler extends AbstractProfiler { // config settable Thread threadToSample = currentThread(); toString { ret threadToSample == null ? shortClassName(this) : "Profiler for " + threadToSample; } void stepImpl() { samples++; StackTraceElement[] stackTrace = threadToSample.getStackTrace(); if (skipSleeping && !isThreadRunnable_x(stackTrace)) ret; lock lock; addSample(stackTrace); } @Override void assertCanStart { assertNotNull(+threadToSample); } }