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

Comparing jsr166/src/jsr166x/LinkedBlockingDeque.java (file contents):
Revision 1.3 by jsr166, Mon Nov 16 04:16:42 2009 UTC vs.
Revision 1.10 by jsr166, Tue Feb 21 01:54:03 2012 UTC

# Line 1 | Line 1
1   /*
2   * Written by Doug Lea with assistance from members of JCP JSR-166
3   * Expert Group and released to the public domain, as explained at
4 < * http://creativecommons.org/licenses/publicdomain
4 > * http://creativecommons.org/publicdomain/zero/1.0/
5   */
6  
7   package jsr166x;
# Line 39 | Line 39 | import java.util.concurrent.locks.*;
39   */
40   public class LinkedBlockingDeque<E>
41      extends AbstractQueue<E>
42 <    implements BlockingDeque<E>,  java.io.Serializable {
42 >    implements BlockingDeque<E>, java.io.Serializable {
43  
44      /*
45       * Implemented as a simple doubly-linked list protected by a
# Line 50 | Line 50 | public class LinkedBlockingDeque<E>
50  
51      /** Doubly-linked list node class */
52      static final class Node<E> {
53 <        E item;
53 >        E item;
54          Node<E> prev;
55          Node<E> next;
56          Node(E x, Node<E> p, Node<E> n) {
# Line 149 | Line 149 | public class LinkedBlockingDeque<E>
149      }
150  
151      /**
152 <     * Remove and return first element, or null if empty
152 >     * Removes and returns first element, or null if empty.
153       */
154      private E unlinkFirst() {
155          Node<E> f = first;
# Line 167 | Line 167 | public class LinkedBlockingDeque<E>
167      }
168  
169      /**
170 <     * Remove and return last element, or null if empty
170 >     * Removes and returns last element, or null if empty.
171       */
172      private E unlinkLast() {
173          Node<E> l = last;
# Line 434 | Line 434 | public class LinkedBlockingDeque<E>
434  
435      // BlockingQueue methods
436  
437 <    public void put(E o) throws InterruptedException  { putLast(o);  }
438 <    public E take() throws InterruptedException       { return takeFirst(); }
437 >    public void put(E o) throws InterruptedException { putLast(o); }
438 >    public E take() throws InterruptedException      { return takeFirst(); }
439      public boolean offer(E o, long timeout, TimeUnit unit)
440          throws InterruptedException    { return offerLast(o, timeout, unit); }
441      public E poll(long timeout, TimeUnit unit)
# Line 524 | Line 524 | public class LinkedBlockingDeque<E>
524       * Variant of removeFirstOccurrence needed by iterator.remove.
525       * Searches for the node, not its contents.
526       */
527 <   boolean removeNode(Node<E> e) {
527 >    boolean removeNode(Node<E> e) {
528          lock.lock();
529          try {
530              for (Node<E> p = first; p != null; p = p.next) {
# Line 684 | Line 684 | public class LinkedBlockingDeque<E>
684              final ReentrantLock lock = LinkedBlockingDeque.this.lock;
685              lock.lock();
686              try {
687 <                next = (next == null)? first : next.next;
688 <                nextItem = (next == null)? null : next.item;
687 >                next = (next == null) ? first : next.next;
688 >                nextItem = (next == null) ? null : next.item;
689              } finally {
690                  lock.unlock();
691              }
# Line 717 | Line 717 | public class LinkedBlockingDeque<E>
717      }
718  
719      /**
720 <     * Save the state to a stream (that is, serialize it).
720 >     * Saves the state to a stream (that is, serializes it).
721       *
722       * @serialData The capacity (int), followed by elements (each an
723       * <tt>Object</tt>) in the proper order, followed by a null
# Line 740 | Line 740 | public class LinkedBlockingDeque<E>
740      }
741  
742      /**
743 <     * Reconstitute this deque instance from a stream (that is,
744 <     * deserialize it).
743 >     * Reconstitutes this deque instance from a stream (that is,
744 >     * deserializes it).
745       * @param s the stream
746       */
747      private void readObject(java.io.ObjectInputStream s)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines