--- jsr166/src/jsr166y/ForkJoinPool.java 2010/10/24 19:37:26 1.83 +++ jsr166/src/jsr166y/ForkJoinPool.java 2010/11/13 13:11:51 1.84 @@ -1128,7 +1128,7 @@ public class ForkJoinPool extends Abstra // Finish now if all threads terminated; else in some subsequent call if ((workerCounts >>> TOTAL_COUNT_SHIFT) == 0) { advanceRunLevel(TERMINATED); - termination.arrive(); + termination.forceTermination(); } return true; } @@ -1796,10 +1796,11 @@ public class ForkJoinPool extends Abstra public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException { try { - return termination.awaitAdvanceInterruptibly(0, timeout, unit) > 0; + termination.awaitAdvanceInterruptibly(0, timeout, unit); } catch (TimeoutException ex) { return false; } + return true; } /**