Archived
0

Timings are now written to the file

This commit is contained in:
Daniil
2018-08-07 16:11:27 +07:00
parent b2d3792384
commit 22dbf8caa8
2 changed files with 20 additions and 8 deletions

View File

@@ -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);
}
}
}

View File

@@ -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();
}