test/java/util/concurrent/Phaser/Basic.java
Print this page
@@ -50,19 +50,20 @@
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);
+ 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(phaser.awaitAdvanceInterruptibly(0), -1);
- equal(phaser.awaitAdvanceInterruptibly(0, 10, SECONDS), -1);
+ 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,14 +93,13 @@
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));
+ int awaitPhase = atTheStartingGate.awaitAdvanceInterruptibly
+ (phase, 10, SECONDS);
+ if (expectNextPhase) check(awaitPhase == (phase + 1));
pass();
} catch (Throwable t) {
unexpected(t);
// reset(atTheStartingGate);
@@ -269,22 +269,23 @@
//----------------------------------------------------------------
// 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);
- 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();
+ equal(0, phaser.getPhase());
phaser.forceTermination();
a1.join();
a2.join();
- check(a1.phase == -1);
- check(a2.phase == -1);
+ 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); }