ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/jsr166e/CompletableFuture.java
(Generate patch)

Comparing jsr166/src/jsr166e/CompletableFuture.java (file contents):
Revision 1.3 by dl, Wed Jan 2 18:20:16 2013 UTC vs.
Revision 1.5 by jsr166, Thu Jan 3 19:34:31 2013 UTC

# Line 83 | Line 83 | public class CompletableFuture<T> implem
83      /*
84       * Overview:
85       *
86 <     * 1. Non-nullness of field result (set via CAS) indicates
87 <     * done. An AltResult is used to box null as a result, as well as
88 <     * to hold exceptions.  Using a single field makes completion fast
86 >     * 1. Non-nullness of field result (set via CAS) indicates done.
87 >     * An AltResult is used to box null as a result, as well as to
88 >     * hold exceptions.  Using a single field makes completion fast
89       * and simple to detect and trigger, at the expense of a lot of
90       * encoding and decoding that infiltrates many methods. One minor
91       * simplification relies on the (static) NIL (to box null results)
# Line 287 | Line 287 | public class CompletableFuture<T> implem
287              else if (q.thread != null && result == null) {
288                  try {
289                      ForkJoinPool.managedBlock(q);
290 <                } catch(InterruptedException ex){
290 >                } catch (InterruptedException ex) {
291                      q.interruptControl = -1;
292                  }
293              }
# Line 320 | Line 320 | public class CompletableFuture<T> implem
320                  if (nanos <= 0L)
321                      throw new TimeoutException();
322                  long d = System.nanoTime() + nanos;
323 <                q = new WaitNode(true, nanos, d == 0L? 1L : d); // avoid 0
323 >                q = new WaitNode(true, nanos, d == 0L ? 1L : d); // avoid 0
324              }
325              else if (!queued)
326                  queued = UNSAFE.compareAndSwapObject(this, WAITERS,
# Line 338 | Line 338 | public class CompletableFuture<T> implem
338              else if (q.thread != null && result == null) {
339                  try {
340                      ForkJoinPool.managedBlock(q);
341 <                } catch(InterruptedException ex){
341 >                } catch (InterruptedException ex) {
342                      q.interruptControl = -1;
343                  }
344              }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines