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

Comparing jsr166/src/jsr166y/LinkedTransferQueue.java (file contents):
Revision 1.64 by jsr166, Mon Nov 2 06:12:02 2009 UTC vs.
Revision 1.65 by jsr166, Mon Nov 2 15:32:00 2009 UTC

# Line 481 | Line 481 | public class LinkedTransferQueue<E> exte
481      /*
482       * Possible values for "how" argument in xfer method.
483       */
484 <    private static final int NOW     = 0; // for untimed poll, tryTransfer
485 <    private static final int ASYNC   = 1; // for offer, put, add
486 <    private static final int SYNC    = 2; // for transfer, take
487 <    private static final int TIMEOUT = 3; // for timed poll, tryTransfer
484 >    private static final int NOW   = 0; // for untimed poll, tryTransfer
485 >    private static final int ASYNC = 1; // for offer, put, add
486 >    private static final int SYNC  = 2; // for transfer, take
487 >    private static final int TIMED = 3; // for timed poll, tryTransfer
488  
489      @SuppressWarnings("unchecked")
490      static <E> E cast(Object item) {
# Line 497 | Line 497 | public class LinkedTransferQueue<E> exte
497       *
498       * @param e the item or null for take
499       * @param haveData true if this is a put, else a take
500 <     * @param how NOW, ASYNC, SYNC, or TIMEOUT
501 <     * @param nanos timeout in nanosecs, used only if mode is TIMEOUT
500 >     * @param how NOW, ASYNC, SYNC, or TIMED
501 >     * @param nanos timeout in nanosecs, used only if mode is TIMED
502       * @return an item if matched, else e
503       * @throws NullPointerException if haveData mode but e is null
504       */
# Line 543 | Line 543 | public class LinkedTransferQueue<E> exte
543                  if (pred == null)
544                      continue retry;           // lost race vs opposite mode
545                  if (how != ASYNC)
546 <                    return awaitMatch(s, pred, e, (how == TIMEOUT), nanos);
546 >                    return awaitMatch(s, pred, e, (how == TIMED), nanos);
547              }
548              return e; // not waiting
549          }
# Line 593 | Line 593 | public class LinkedTransferQueue<E> exte
593       * in any current calls but may in possible future extensions)
594       * @param e the comparison value for checking match
595       * @param timed if true, wait only until timeout elapses
596 <     * @param nanos timeout value
596 >     * @param nanos timeout in nanosecs, used only if timed is true
597       * @return matched item, or e if unmatched on interrupt or timeout
598       */
599      private E awaitMatch(Node s, Node pred, E e, boolean timed, long nanos) {
# Line 1041 | Line 1041 | public class LinkedTransferQueue<E> exte
1041       */
1042      public boolean tryTransfer(E e, long timeout, TimeUnit unit)
1043          throws InterruptedException {
1044 <        if (xfer(e, true, TIMEOUT, unit.toNanos(timeout)) == null)
1044 >        if (xfer(e, true, TIMED, unit.toNanos(timeout)) == null)
1045              return true;
1046          if (!Thread.interrupted())
1047              return false;
# Line 1057 | Line 1057 | public class LinkedTransferQueue<E> exte
1057      }
1058  
1059      public E poll(long timeout, TimeUnit unit) throws InterruptedException {
1060 <        E e = xfer(null, false, TIMEOUT, unit.toNanos(timeout));
1060 >        E e = xfer(null, false, TIMED, unit.toNanos(timeout));
1061          if (e != null || !Thread.interrupted())
1062              return e;
1063          throw new InterruptedException();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines