test/jdk/java/nio/channels/Selector/RacyDeregister.java
changeset 50794 0ab1cac936b8
parent 50258 25f93c5406bf
child 55525 c9093341cfe2
--- a/test/jdk/java/nio/channels/Selector/RacyDeregister.java	Tue Jun 26 09:14:49 2018 -0700
+++ b/test/jdk/java/nio/channels/Selector/RacyDeregister.java	Tue Jun 26 09:33:55 2018 -0700
@@ -34,7 +34,7 @@
 
 /*
  * @test
- * @bug 6429204 8203766
+ * @bug 6429204 8203766 8205641
  * @summary SelectionKey.interestOps does not update interest set on Windows.
  * @author Frank Ding
  * @run main/timeout=1200 RacyDeregister
@@ -91,6 +91,9 @@
             public void run() {
                 try {
                     for (int k = 0; k < NUM_OUTER_LOOP_ITERATIONS; k++) {
+                        System.out.format("outer loop %3d at %7d ms%n", k,
+                            System.currentTimeMillis() - t0);
+                        System.out.flush();
                         for (int i = 0; i < 10000; i++) {
                             synchronized (notifyLock) {
                                 synchronized (selectorLock) {
@@ -115,6 +118,7 @@
                                                 System.err.printf
                                                     ("Notified after %d ms%n",
                                                      t - beginTime);
+                                                System.err.flush();
                                                 break;
                                             }
                                         }
@@ -130,6 +134,7 @@
                         if (t - t0 > TIMEOUT_THRESHOLD_MILLIS) {
                             System.err.format
                                 ("Timeout after %d outer loop iterations%n", k);
+                            System.err.flush();
                             succTermination = false;
                             // wake up main thread doing select()
                             sel.wakeup();
@@ -141,6 +146,7 @@
                     sel.wakeup();
                 } catch (Exception e) {
                     System.out.println(e);
+                    System.out.flush();
                     succTermination = true;
                     // wake up main thread doing select()
                     sel.wakeup();
@@ -153,11 +159,13 @@
             sel.select();
             if (Boolean.TRUE.equals(succTermination)) {
                 System.out.println("Test passed");
+                System.out.flush();
                 sel.close();
                 sc.close();
                 break;
             } else if (Boolean.FALSE.equals(succTermination)) {
                 System.err.println("Failed to pass the test");
+                System.err.flush();
                 sel.close();
                 sc.close();
                 throw new RuntimeException("Failed to pass the test");