--- old/test/java/util/concurrent/Phaser/Basic.java Fri Mar 30 11:13:39 2012 +++ new/test/java/util/concurrent/Phaser/Basic.java Fri Mar 30 11:13:39 2012 @@ -48,6 +48,8 @@ public class Basic { + private static final int TIMEOUT = 100; + private static void checkTerminated(final Phaser phaser) { check(phaser.isTerminated()); int unarriverParties = phaser.getUnarrivedParties(); @@ -96,7 +98,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 +190,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 +206,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,10 +253,15 @@ 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(); - a1.interrupt(); + int count = 0; + while (a1.result() == null && count < 20) { + Thread.sleep(TIMEOUT); + a1.interrupt(); + count++; + } a1.join(); phaser.arriveAndAwaitAdvance(); a2.join();