6963841: java/util/concurrent/Phaser/Basic.java fails intermittently
authorchegar
Wed, 04 Apr 2012 15:14:00 +0100
changeset 12308 48d57c925c0d
parent 12307 b34445ac110f
child 12309 49cad5b7b263
child 12420 9bcfb332d398
6963841: java/util/concurrent/Phaser/Basic.java fails intermittently Reviewed-by: dl, dholmes
jdk/test/java/util/concurrent/Phaser/Basic.java
--- a/jdk/test/java/util/concurrent/Phaser/Basic.java	Tue Apr 03 12:57:47 2012 -0700
+++ b/jdk/test/java/util/concurrent/Phaser/Basic.java	Wed Apr 04 15:14:00 2012 +0100
@@ -96,7 +96,7 @@
             int phase = atTheStartingGate.getPhase();
             equal(phase, atTheStartingGate.arrive());
             int awaitPhase = atTheStartingGate.awaitAdvanceInterruptibly
-                (phase, 10, SECONDS);
+                (phase, 30, SECONDS);
             if (expectNextPhase) check(awaitPhase == (phase + 1));
 
             pass();
@@ -188,7 +188,7 @@
                     case 2: case 6: case 7:
                         return awaiter(phaser, -1, SECONDS);
                     default:
-                        return awaiter(phaser, 10, SECONDS); }}
+                        return awaiter(phaser, 30, SECONDS); }}
             public void remove() {throw new UnsupportedOperationException();}};
     }
 
@@ -204,7 +204,7 @@
                     case 2: case 5:
                         return awaiter(phaser, -1, SECONDS);
                     default:
-                        return awaiter(phaser, 10, SECONDS); }}
+                        return awaiter(phaser, 30, SECONDS); }}
             public void remove() {throw new UnsupportedOperationException();}};
     }
 
@@ -251,9 +251,11 @@
             int phase = phaser.getPhase();
             for (int i = 0; i < 4; i++) {
                 check(phaser.getPhase() == phase);
-                Awaiter a1 = awaiter(phaser, 10, SECONDS); a1.start();
+                Awaiter a1 = awaiter(phaser, 30, SECONDS); a1.start();
                 Arriver a2 = arrivers.next(); a2.start();
                 toTheStartingGate();
+                // allow a1 to block in awaitAdvanceInterruptibly
+                Thread.sleep(2000);
                 a1.interrupt();
                 a1.join();
                 phaser.arriveAndAwaitAdvance();