--- jsr166/src/jsr166y/ForkJoinTask.java 2010/08/11 18:45:12 1.53 +++ jsr166/src/jsr166y/ForkJoinTask.java 2010/08/11 19:44:30 1.54 @@ -643,6 +643,7 @@ public abstract class ForkJoinTask im */ boolean interrupted = false; boolean dec = false; // true if pool count decremented + long nanos = unit.toNanos(timeout); for (;;) { if (Thread.interrupted() && pool == null) { interrupted = true; @@ -653,7 +654,6 @@ public abstract class ForkJoinTask im break; if (UNSAFE.compareAndSwapInt(this, statusOffset, s, SIGNAL)) { long startTime = System.nanoTime(); - long nanos = unit.toNanos(timeout); long nt; // wait time while (status >= 0 && (nt = nanos - (System.nanoTime() - startTime)) > 0) {