test/java/util/concurrent/Phaser/Basic.java
Print this page
*** 50,68 ****
private static void checkTerminated(final Phaser phaser) {
check(phaser.isTerminated());
int unarriverParties = phaser.getUnarrivedParties();
int registeredParties = phaser.getRegisteredParties();
! equal(phaser.arrive(), -1);
! equal(phaser.arriveAndDeregister(), -1);
! equal(phaser.arriveAndAwaitAdvance(), -1);
! equal(phaser.bulkRegister(10), -1);
! equal(phaser.getPhase(), -1);
! equal(phaser.register(), -1);
try {
! equal(phaser.awaitAdvanceInterruptibly(0), -1);
! equal(phaser.awaitAdvanceInterruptibly(0, 10, SECONDS), -1);
} catch (Exception ie) {
unexpected(ie);
}
equal(phaser.getUnarrivedParties(), unarriverParties);
equal(phaser.getRegisteredParties(), registeredParties);
--- 50,69 ----
private static void checkTerminated(final Phaser phaser) {
check(phaser.isTerminated());
int unarriverParties = phaser.getUnarrivedParties();
int registeredParties = phaser.getRegisteredParties();
! int phase = phaser.getPhase();
! check(phase < 0);
! equal(phase, phaser.arrive());
! equal(phase, phaser.arriveAndDeregister());
! equal(phase, phaser.arriveAndAwaitAdvance());
! equal(phase, phaser.bulkRegister(10));
! equal(phase, phaser.register());
try {
! equal(phase, phaser.awaitAdvanceInterruptibly(0));
! equal(phase, phaser.awaitAdvanceInterruptibly(0, 10, SECONDS));
} catch (Exception ie) {
unexpected(ie);
}
equal(phaser.getUnarrivedParties(), unarriverParties);
equal(phaser.getRegisteredParties(), registeredParties);
*** 92,105 ****
if (atTheStartingGate.getUnarrivedParties() == 1) {
expectNextPhase = true;
}
int phase = atTheStartingGate.getPhase();
equal(phase, atTheStartingGate.arrive());
! int AwaitPhase = atTheStartingGate.awaitAdvanceInterruptibly(phase,
! 10,
! SECONDS);
! if (expectNextPhase) check(AwaitPhase == (phase + 1));
pass();
} catch (Throwable t) {
unexpected(t);
// reset(atTheStartingGate);
--- 93,105 ----
if (atTheStartingGate.getUnarrivedParties() == 1) {
expectNextPhase = true;
}
int phase = atTheStartingGate.getPhase();
equal(phase, atTheStartingGate.arrive());
! int awaitPhase = atTheStartingGate.awaitAdvanceInterruptibly
! (phase, 10, SECONDS);
! if (expectNextPhase) check(awaitPhase == (phase + 1));
pass();
} catch (Throwable t) {
unexpected(t);
// reset(atTheStartingGate);
*** 269,290 ****
//----------------------------------------------------------------
// Phaser is terminated while threads are waiting
//----------------------------------------------------------------
try {
Phaser phaser = new Phaser(3);
Iterator<Awaiter> awaiters = awaiterIterator(phaser);
- for (int i = 0; i < 4; i++) {
Arriver a1 = awaiters.next(); a1.start();
Arriver a2 = awaiters.next(); a2.start();
toTheStartingGate();
while (phaser.getArrivedParties() < 2) Thread.yield();
phaser.forceTermination();
a1.join();
a2.join();
! check(a1.phase == -1);
! check(a2.phase == -1);
int arrivedParties = phaser.getArrivedParties();
checkTerminated(phaser);
equal(phaser.getArrivedParties(), arrivedParties);
}
} catch (Throwable t) { unexpected(t); }
--- 269,291 ----
//----------------------------------------------------------------
// Phaser is terminated while threads are waiting
//----------------------------------------------------------------
try {
+ for (int i = 0; i < 4; i++) {
Phaser phaser = new Phaser(3);
Iterator<Awaiter> awaiters = awaiterIterator(phaser);
Arriver a1 = awaiters.next(); a1.start();
Arriver a2 = awaiters.next(); a2.start();
toTheStartingGate();
while (phaser.getArrivedParties() < 2) Thread.yield();
+ equal(0, phaser.getPhase());
phaser.forceTermination();
a1.join();
a2.join();
! equal(0 + Integer.MIN_VALUE, a1.phase);
! equal(0 + Integer.MIN_VALUE, a2.phase);
int arrivedParties = phaser.getArrivedParties();
checkTerminated(phaser);
equal(phaser.getArrivedParties(), arrivedParties);
}
} catch (Throwable t) { unexpected(t); }