< prev index next >

modules/javafx.graphics/src/main/java/com/sun/javafx/application/PlatformImpl.java

Print this page

        

*** 89,98 **** --- 89,99 ---- private static Boolean hasMultiTouch; private static Boolean hasPointer; private static boolean isThreadMerged = false; private static String applicationType = ""; private static BooleanProperty accessibilityActive = new SimpleBooleanProperty(); + private static CountDownLatch allNestedLoopsExited = new CountDownLatch(1); private static final boolean verbose = AccessController.doPrivileged((PrivilegedAction<Boolean>) () -> Boolean.getBoolean("javafx.verbose"));
*** 255,264 **** --- 256,267 ---- checkIdle(); } @Override public void exitedLastNestedLoop() { + if (isImplicitExit()) + allNestedLoopsExited.countDown(); checkIdle(); } }; Toolkit.getToolkit().addTkListener(toolkitListener);
*** 561,570 **** --- 564,588 ---- static CountDownLatch test_getPlatformExitLatch() { return platformExitLatch; } public static void tkExit() { + + PlatformImpl.runAndWait(() -> { + if (Toolkit.getToolkit().isNestedLoopRunning()) { + Toolkit.getToolkit().exitAllNestedEventLoops(); + } else { + allNestedLoopsExited.countDown(); + } + }); + + try { + allNestedLoopsExited.await(); + } catch (InterruptedException e) { + throw new RuntimeException("Could not exit all nested event loops"); + } + if (toolkitExit.getAndSet(true)) { return; } if (initialized.get()) {
< prev index next >