X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fcom%2Fgooglecode%2Flanterna%2Fgui2%2FAbstractTextGUIThread.java;h=f4a00163ded8a3524f703a77320219e715bf37cf;hb=a73a906356c971b080c36368e71a15d87e8b8d31;hp=df542d0fa6825621d7a8c7987118b8e892f376d8;hpb=a3b510ab4bf89a7a2a05f3851ffe0f030b8a78f4;p=jvcard.git diff --git a/src/com/googlecode/lanterna/gui2/AbstractTextGUIThread.java b/src/com/googlecode/lanterna/gui2/AbstractTextGUIThread.java index df542d0..f4a0016 100644 --- a/src/com/googlecode/lanterna/gui2/AbstractTextGUIThread.java +++ b/src/com/googlecode/lanterna/gui2/AbstractTextGUIThread.java @@ -34,12 +34,7 @@ public abstract class AbstractTextGUIThread implements TextGUIThread { @Override public void invokeLater(Runnable runnable) throws IllegalStateException { - if(Thread.currentThread() == getThread()) { - runnable.run(); - } - else { - customTasks.add(runnable); - } + customTasks.add(runnable); } @Override @@ -71,14 +66,23 @@ public abstract class AbstractTextGUIThread implements TextGUIThread { @Override public void invokeAndWait(final Runnable runnable) throws IllegalStateException, InterruptedException { - final CountDownLatch countDownLatch = new CountDownLatch(1); - invokeLater(new Runnable() { - @Override - public void run() { - runnable.run(); - countDownLatch.countDown(); - } - }); - countDownLatch.await(); + if(Thread.currentThread() == getThread()) { + runnable.run(); + } + else { + final CountDownLatch countDownLatch = new CountDownLatch(1); + invokeLater(new Runnable() { + @Override + public void run() { + try { + runnable.run(); + } + finally { + countDownLatch.countDown(); + } + } + }); + countDownLatch.await(); + } } }