176 |
|
} |
177 |
|
|
178 |
|
/** |
179 |
< |
* Arrive() on a registered phaser increments phase. |
179 |
> |
* Arrive() on a registered phaser increments phase. |
180 |
|
*/ |
181 |
|
public void testArrive1() { |
182 |
|
Phaser phaser = new Phaser(1); |
235 |
|
phaser.register(); |
236 |
|
phaser.arrive(); |
237 |
|
int p = phaser.getArrivedParties(); |
238 |
< |
assertTrue(p == 1); |
238 |
> |
assertEquals(1, p); |
239 |
|
phaser.arriveAndDeregister(); |
240 |
|
assertTrue(phaser.getArrivedParties() < p); |
241 |
|
} |
252 |
|
assertTrue(parent.getUnarrivedParties() > 0); |
253 |
|
assertTrue(root.getUnarrivedParties() > 0); |
254 |
|
root.arriveAndDeregister(); |
255 |
< |
assertTrue(parent.getUnarrivedParties() == 0); |
256 |
< |
assertTrue(root.getUnarrivedParties() == 0); |
255 |
> |
assertEquals(0, parent.getUnarrivedParties()); |
256 |
> |
assertEquals(0, root.getUnarrivedParties()); |
257 |
|
assertTrue(root.isTerminated() && parent.isTerminated()); |
258 |
|
} |
259 |
|
|
283 |
|
assertTrue(child.getUnarrivedParties() > 0); |
284 |
|
root.register(); |
285 |
|
root.arriveAndDeregister(); |
286 |
< |
assertTrue(parent.getUnarrivedParties() == 0); |
287 |
< |
assertTrue(child.getUnarrivedParties() == 0); |
286 |
> |
assertEquals(0, parent.getUnarrivedParties()); |
287 |
> |
assertEquals(0, child.getUnarrivedParties()); |
288 |
|
assertTrue(root.isTerminated()); |
289 |
|
} |
290 |
|
|
465 |
|
*/ |
466 |
|
public void testArriveAndAwaitAdvance3() throws InterruptedException { |
467 |
|
final Phaser phaser = new Phaser(1); |
468 |
– |
final AtomicInteger arrivingCount = new AtomicInteger(0); |
468 |
|
final List<Thread> threads = new ArrayList<Thread>(); |
469 |
< |
for (int i = 0; i < 6; i++) { |
469 |
> |
for (int i = 0; i < 3; i++) { |
470 |
|
threads.add(newStartedThread(new CheckedRunnable() { |
471 |
< |
public void realRun() throws InterruptedException { |
472 |
< |
phaser.register(); |
473 |
< |
sleepTillInterrupted(SHORT_DELAY_MS); |
474 |
< |
arrivingCount.getAndIncrement(); |
476 |
< |
phaser.arrive(); |
477 |
< |
}})); |
471 |
> |
public void realRun() throws InterruptedException { |
472 |
> |
phaser.register(); |
473 |
> |
phaser.arriveAndAwaitAdvance(); |
474 |
> |
}})); |
475 |
|
} |
476 |
< |
int phaseNumber = phaser.arriveAndAwaitAdvance(); |
477 |
< |
arrivingCount.incrementAndGet(); |
478 |
< |
//the + 1 adds to expectedArrive to account for the main threads arrival |
482 |
< |
int expectedArrived = phaseNumber > 0 ? phaseNumber * six + 1 : phaser.getArrivedParties() + 1; |
483 |
< |
assertEquals(expectedArrived, arrivingCount.get()); |
476 |
> |
Thread.sleep(MEDIUM_DELAY_MS); |
477 |
> |
assertEquals(phaser.getArrivedParties(), 3); |
478 |
> |
phaser.arriveAndAwaitAdvance(); |
479 |
|
for (Thread thread : threads) |
480 |
|
thread.join(); |
481 |
|
} |