From 142b07ff5af99bf577f7bb15bcb2a667068b8df9 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Mon, 27 May 2013 15:11:24 +0000 Subject: [PATCH] inlined set/remove input for locks aux method in fthread --- src/main/java/forge/FThreads.java | 4 ++++ src/main/java/forge/control/input/InputQueue.java | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/forge/FThreads.java b/src/main/java/forge/FThreads.java index 0aed8800c3e..6508e3acefa 100644 --- a/src/main/java/forge/FThreads.java +++ b/src/main/java/forge/FThreads.java @@ -141,6 +141,10 @@ public class FThreads { return isEDT() ? "EDT" : Thread.currentThread().getName(); } + public static String prependThreadId(String message) { + return debugGetCurrThreadId() + " > " + message; + } + public static void dumpStackTrace(PrintStream stream) { StackTraceElement[] trace = Thread.currentThread().getStackTrace(); stream.printf("%s > %s called from %s%n", debugGetCurrThreadId(), trace[2].getClassName()+"."+trace[2].getMethodName(), trace[3].toString()); diff --git a/src/main/java/forge/control/input/InputQueue.java b/src/main/java/forge/control/input/InputQueue.java index d7c138adaa3..30b9c493a2b 100644 --- a/src/main/java/forge/control/input/InputQueue.java +++ b/src/main/java/forge/control/input/InputQueue.java @@ -175,13 +175,18 @@ public class InputQueue extends MyObservable implements java.io.Serializable { public void lock() { - setInput(inputLock); + this.inputStack.push(inputLock); + this.updateObservers(); } public void unlock() { + FThreads.assertExecutedByEdt(false); + if ( inputStack.isEmpty() || inputStack.peek() != inputLock ) throw new RuntimeException("Trying to unlock input which is not locked (threading issue)! Input stack = " + inputStack); - removeInput(inputLock); + + inputStack.pop(); + this.updateObservers(); } // only for debug purposes