Timings are now written to the file
This commit is contained in:
@@ -8,32 +8,38 @@ public class ThreadTimings {
|
||||
private int threadId;
|
||||
private Stack<Timings> stack = new Stack<>();
|
||||
|
||||
public Stack<Timings> getStack() {
|
||||
return stack;
|
||||
}
|
||||
|
||||
public ThreadTimings() {
|
||||
this.threadId = IDS.getAndIncrement();
|
||||
}
|
||||
|
||||
public Stack<Timings> getStack() {
|
||||
return stack;
|
||||
}
|
||||
|
||||
public int getThreadId() {
|
||||
return threadId;
|
||||
}
|
||||
|
||||
public Timings start() {
|
||||
Timings timings = new Timings(this, stack.size());
|
||||
Timings.getTimingsManager().waitForTimingsInitialize();
|
||||
getTimingsManager().waitForTimingsInitialize();
|
||||
stack.push(timings);
|
||||
getTimingsManager().notifyTimings(this, timings, true);
|
||||
return timings;
|
||||
}
|
||||
|
||||
private TimingsManager getTimingsManager() {
|
||||
return Timings.getTimingsManager();
|
||||
}
|
||||
|
||||
public void end(Timings finished) {
|
||||
Timings timings = null;
|
||||
while (!stack.isEmpty() && timings != finished) {
|
||||
Timings.getTimingsManager().waitForTimingsInitialize();
|
||||
getTimingsManager().waitForTimingsInitialize();
|
||||
timings = stack.pop();
|
||||
if (!timings.hasFinished())
|
||||
timings.finish();
|
||||
getTimingsManager().notifyTimings(this, timings, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,13 +90,19 @@ public class TimingsManager {
|
||||
writer = null;
|
||||
}
|
||||
|
||||
void addToQueue(TimingsRecord record) {
|
||||
void notifyTimings(ThreadTimings thread, Timings timings, boolean start) {
|
||||
if (queue == null)
|
||||
return;
|
||||
queueAccessLock.lock();
|
||||
try {
|
||||
if (queue != null)
|
||||
queue.offer(record);
|
||||
queue.offer(
|
||||
new TimingsRecord(thread.getThreadId(),
|
||||
timings.getId(),
|
||||
start ? timings.getAcquireTime() : timings.getEndTime(),
|
||||
start ? TimingsFileWriter.TimingsEventType.TIMINGS_START : TimingsFileWriter.TimingsEventType.TIMINGS_END
|
||||
)
|
||||
);
|
||||
} finally {
|
||||
queueAccessLock.unlock();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user