269 |
|
RecursiveAction a = new CheckedRecursiveAction() { |
270 |
|
protected void realCompute() { |
271 |
|
FibAction f = new FibAction(8); |
272 |
< |
final Thread myself = Thread.currentThread(); |
272 |
> |
final Thread currentThread = Thread.currentThread(); |
273 |
|
|
274 |
|
// test join() |
275 |
|
assertSame(f, f.fork()); |
276 |
< |
myself.interrupt(); |
277 |
< |
assertTrue(myself.isInterrupted()); |
276 |
> |
currentThread.interrupt(); |
277 |
|
assertNull(f.join()); |
278 |
|
Thread.interrupted(); |
279 |
|
assertEquals(21, f.result); |
282 |
|
f = new FibAction(8); |
283 |
|
f.cancel(true); |
284 |
|
assertSame(f, f.fork()); |
285 |
< |
myself.interrupt(); |
287 |
< |
assertTrue(myself.isInterrupted()); |
285 |
> |
currentThread.interrupt(); |
286 |
|
try { |
287 |
|
f.join(); |
288 |
|
shouldThrow(); |
294 |
|
f = new FibAction(8); |
295 |
|
f.completeExceptionally(new FJException()); |
296 |
|
assertSame(f, f.fork()); |
297 |
< |
myself.interrupt(); |
300 |
< |
assertTrue(myself.isInterrupted()); |
297 |
> |
currentThread.interrupt(); |
298 |
|
try { |
299 |
|
f.join(); |
300 |
|
shouldThrow(); |
306 |
|
// test quietlyJoin() |
307 |
|
f = new FibAction(8); |
308 |
|
assertSame(f, f.fork()); |
309 |
< |
myself.interrupt(); |
313 |
< |
assertTrue(myself.isInterrupted()); |
309 |
> |
currentThread.interrupt(); |
310 |
|
f.quietlyJoin(); |
311 |
|
Thread.interrupted(); |
312 |
|
assertEquals(21, f.result); |
315 |
|
f = new FibAction(8); |
316 |
|
f.cancel(true); |
317 |
|
assertSame(f, f.fork()); |
318 |
< |
myself.interrupt(); |
323 |
< |
assertTrue(myself.isInterrupted()); |
318 |
> |
currentThread.interrupt(); |
319 |
|
f.quietlyJoin(); |
320 |
|
Thread.interrupted(); |
321 |
|
checkCancelled(f); |
323 |
|
f = new FibAction(8); |
324 |
|
f.completeExceptionally(new FJException()); |
325 |
|
assertSame(f, f.fork()); |
326 |
< |
myself.interrupt(); |
332 |
< |
assertTrue(myself.isInterrupted()); |
326 |
> |
currentThread.interrupt(); |
327 |
|
f.quietlyJoin(); |
328 |
|
Thread.interrupted(); |
329 |
|
checkCompletedAbnormally(f, f.getException()); |
1514 |
|
assertFalse(p.isTerminated()); |
1515 |
|
Thread.yield(); |
1516 |
|
} |
1523 |
– |
assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS); |
1517 |
|
assertEquals(0, p.getQueuedTaskCount()); |
1518 |
|
assertFalse(p.getAsyncMode()); |
1526 |
– |
assertEquals(0, p.getActiveThreadCount()); |
1527 |
– |
assertEquals(0, p.getQueuedTaskCount()); |
1519 |
|
assertEquals(0, p.getQueuedSubmissionCount()); |
1520 |
|
assertFalse(p.hasQueuedSubmissions()); |
1521 |
+ |
while (p.getActiveThreadCount() != 0 |
1522 |
+ |
&& millisElapsedSince(startTime) < LONG_DELAY_MS) |
1523 |
+ |
Thread.yield(); |
1524 |
|
assertFalse(p.isShutdown()); |
1525 |
|
assertFalse(p.isTerminating()); |
1526 |
|
assertFalse(p.isTerminated()); |
1527 |
+ |
assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS); |
1528 |
|
} |
1529 |
|
} |
1530 |
|
|
1563 |
|
}}; |
1564 |
|
p.execute(a); |
1565 |
|
assertTrue(p.awaitQuiescence(LONG_DELAY_MS, MILLISECONDS)); |
1571 |
– |
assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS); |
1566 |
|
assertTrue(p.isQuiescent()); |
1567 |
|
assertTrue(a.isDone()); |
1568 |
|
assertEquals(0, p.getQueuedTaskCount()); |
1569 |
|
assertFalse(p.getAsyncMode()); |
1576 |
– |
assertEquals(0, p.getActiveThreadCount()); |
1577 |
– |
assertEquals(0, p.getQueuedTaskCount()); |
1570 |
|
assertEquals(0, p.getQueuedSubmissionCount()); |
1571 |
|
assertFalse(p.hasQueuedSubmissions()); |
1572 |
+ |
while (p.getActiveThreadCount() != 0 |
1573 |
+ |
&& millisElapsedSince(startTime) < LONG_DELAY_MS) |
1574 |
+ |
Thread.yield(); |
1575 |
|
assertFalse(p.isShutdown()); |
1576 |
|
assertFalse(p.isTerminating()); |
1577 |
|
assertFalse(p.isTerminated()); |
1578 |
+ |
assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS); |
1579 |
|
} |
1580 |
|
} |
1581 |
|
|