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

Comparing jsr166/src/main/java/util/concurrent/ForkJoinPool.java (file contents):
Revision 1.182 by dl, Tue May 14 19:58:08 2013 UTC vs.
Revision 1.183 by dl, Mon May 20 10:40:07 2013 UTC

# Line 2949 | Line 2949 | public class ForkJoinPool extends Abstra
2949          long nanos = unit.toNanos(timeout);
2950          if (isTerminated())
2951              return true;
2952 <        long startTime = System.nanoTime();
2953 <        boolean terminated = false;
2952 >        if (nanos <= 0L)
2953 >            return false;
2954 >        long deadline = System.nanoTime() + nanos;
2955          synchronized (this) {
2956 <            for (long waitTime = nanos, millis = 0L;;) {
2957 <                if (terminated = isTerminated() ||
2958 <                    waitTime <= 0L ||
2959 <                    (millis = unit.toMillis(waitTime)) <= 0L)
2960 <                    break;
2961 <                wait(millis);
2962 <                waitTime = nanos - (System.nanoTime() - startTime);
2956 >            for (;;)  {
2957 >                if (isTerminated())
2958 >                    return true;
2959 >                if (nanos <= 0L)
2960 >                    return false;
2961 >                long millis = TimeUnit.NANOSECONDS.toMillis(nanos);
2962 >                wait(millis > 0L ? millis : 1L);
2963 >                nanos = deadline - System.nanoTime();
2964              }
2965          }
2964        return terminated;
2966      }
2967  
2968      /**

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines