501 |
|
new ThreadPoolExecutor(1, 1, |
502 |
|
LONG_DELAY_MS, MILLISECONDS, |
503 |
|
new ArrayBlockingQueue<Runnable>(10)); |
504 |
< |
final CountDownLatch threadStarted = new CountDownLatch(1); |
505 |
< |
final CountDownLatch done = new CountDownLatch(1); |
506 |
< |
try { |
504 |
> |
try (PoolCleaner cleaner = cleaner(p)) { |
505 |
> |
final CountDownLatch threadStarted = new CountDownLatch(1); |
506 |
> |
final CountDownLatch done = new CountDownLatch(1); |
507 |
|
assertFalse(p.isTerminating()); |
508 |
|
p.execute(new CheckedRunnable() { |
509 |
|
public void realRun() throws InterruptedException { |
514 |
|
assertTrue(threadStarted.await(MEDIUM_DELAY_MS, MILLISECONDS)); |
515 |
|
assertFalse(p.isTerminating()); |
516 |
|
done.countDown(); |
517 |
– |
} finally { |
517 |
|
try { p.shutdown(); } catch (SecurityException ok) { return; } |
518 |
+ |
assertTrue(p.awaitTermination(LONG_DELAY_MS, MILLISECONDS)); |
519 |
+ |
assertTrue(p.isTerminated()); |
520 |
+ |
assertFalse(p.isTerminating()); |
521 |
|
} |
520 |
– |
assertTrue(p.awaitTermination(LONG_DELAY_MS, MILLISECONDS)); |
521 |
– |
assertTrue(p.isTerminated()); |
522 |
– |
assertFalse(p.isTerminating()); |
522 |
|
} |
523 |
|
|
524 |
|
/** |