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

Comparing jsr166/src/main/java/util/concurrent/LinkedBlockingDeque.java (file contents):
Revision 1.69 by jsr166, Wed Dec 21 21:18:17 2016 UTC vs.
Revision 1.70 by jsr166, Wed Dec 21 21:36:22 2016 UTC

# Line 1213 | Line 1213 | public class LinkedBlockingDeque<E>
1213          public boolean tryAdvance(Consumer<? super E> action) {
1214              Objects.requireNonNull(action);
1215              if (!exhausted) {
1216                final ReentrantLock lock = LinkedBlockingDeque.this.lock;
1217                Node<E> p = current;
1216                  E e = null;
1217 +                final ReentrantLock lock = LinkedBlockingDeque.this.lock;
1218                  lock.lock();
1219                  try {
1220 +                    Node<E> p = current;
1221                      if (p != null || (p = first) != null)
1222                          do {
1223                              e = p.item;
1224                              p = succ(p);
1225                          } while (e == null && p != null);
1226 +                    exhausted = ((current = p) == null);
1227                  } finally {
1228                      // checkInvariants();
1229                      lock.unlock();
1230                  }
1230                exhausted = ((current = p) == null);
1231                  if (e != null) {
1232                      action.accept(e);
1233                      return true;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines