[cvs] / jsr166 / src / main / java / util / concurrent / LinkedTransferQueue.java Repository:
ViewVC logotype

Diff of /jsr166/src/main/java/util/concurrent/LinkedTransferQueue.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.138, Sun Jan 8 03:48:36 2017 UTC revision 1.139, Mon Jan 9 17:46:26 2017 UTC
# Line 761  Line 761 
761       * before using.       * before using.
762       */       */
763      final Node firstDataNode() {      final Node firstDataNode() {
764            Node first = null;
765          restartFromHead: for (;;) {          restartFromHead: for (;;) {
766              for (Node p = head; p != null;) {              Node h = head, p = h;
767                  Object item = p.item;              for (; p != null;) {
768                    final Object item;
769                    if ((item = p.item) != null) {
770                  if (p.isData) {                  if (p.isData) {
771                      if (item != null)                          first = p;
772                          return p;                          break;
773                  }                  }
774                  else if (item == null)                  }
775                    else if (!p.isData)
776                      break;                      break;
777                  if (p == (p = p.next))                  final Node q;
778                    if ((q = p.next) == null)
779                        break;
780                    if (p == (p = q))
781                      continue restartFromHead;                      continue restartFromHead;
782              }              }
783              return null;              if (p != h && casHead(h, p))
784                    h.forgetNext();
785                return first;
786          }          }
787      }      }
788    

Legend:
Removed from v.1.138  
changed lines
  Added in v.1.139

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8