ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/jdk7/java/util/concurrent/ForkJoinPool.java
(Generate patch)

Comparing jsr166/src/jdk7/java/util/concurrent/ForkJoinPool.java (file contents):
Revision 1.17 by jsr166, Sat Feb 16 20:50:29 2013 UTC vs.
Revision 1.18 by jsr166, Mon May 20 16:03:34 2013 UTC

# Line 3114 | Line 3114 | public class ForkJoinPool extends Abstra
3114          long nanos = unit.toNanos(timeout);
3115          if (isTerminated())
3116              return true;
3117 <        long startTime = System.nanoTime();
3118 <        boolean terminated = false;
3117 >        if (nanos <= 0L)
3118 >            return false;
3119 >        long deadline = System.nanoTime() + nanos;
3120          synchronized (this) {
3121 <            for (long waitTime = nanos, millis = 0L;;) {
3122 <                if (terminated = isTerminated() ||
3123 <                    waitTime <= 0L ||
3124 <                    (millis = unit.toMillis(waitTime)) <= 0L)
3125 <                    break;
3126 <                wait(millis);
3127 <                waitTime = nanos - (System.nanoTime() - startTime);
3121 >            for (;;)  {
3122 >                if (isTerminated())
3123 >                    return true;
3124 >                if (nanos <= 0L)
3125 >                    return false;
3126 >                long millis = TimeUnit.NANOSECONDS.toMillis(nanos);
3127 >                wait(millis > 0L ? millis : 1L);
3128 >                nanos = deadline - System.nanoTime();
3129              }
3130          }
3129        return terminated;
3131      }
3132  
3133      /**

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines