Change build scripts
[jvcard.git] / src / com / googlecode / lanterna / gui2 / AbstractTextGUIThread.java
index df542d0fa6825621d7a8c7987118b8e892f376d8..f4a00163ded8a3524f703a77320219e715bf37cf 100644 (file)
@@ -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();
+        }
     }
 }