From 22dbf8caa84a132659d588f08177054c71e7b91a Mon Sep 17 00:00:00 2001 From: Daniil Date: Tue, 7 Aug 2018 16:11:27 +0700 Subject: [PATCH] Timings are now written to the file --- .../java/mc/core/timings/ThreadTimings.java | 18 ++++++++++++------ .../java/mc/core/timings/TimingsManager.java | 10 ++++++++-- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/event-loop/src/main/java/mc/core/timings/ThreadTimings.java b/event-loop/src/main/java/mc/core/timings/ThreadTimings.java index 2973839..408842b 100644 --- a/event-loop/src/main/java/mc/core/timings/ThreadTimings.java +++ b/event-loop/src/main/java/mc/core/timings/ThreadTimings.java @@ -8,32 +8,38 @@ public class ThreadTimings { private int threadId; private Stack stack = new Stack<>(); - public Stack getStack() { - return stack; - } - public ThreadTimings() { this.threadId = IDS.getAndIncrement(); } + public Stack 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); } } } diff --git a/event-loop/src/main/java/mc/core/timings/TimingsManager.java b/event-loop/src/main/java/mc/core/timings/TimingsManager.java index f5105ec..77e36a0 100644 --- a/event-loop/src/main/java/mc/core/timings/TimingsManager.java +++ b/event-loop/src/main/java/mc/core/timings/TimingsManager.java @@ -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(); }