[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.106, Sat Dec 24 09:45:16 2016 UTC revision 1.107, Sat Dec 24 11:00:36 2016 UTC
# Line 1003  Line 1003 
1003                  Object[] a = new Object[n];                  Object[] a = new Object[n];
1004                  int i = 0;                  int i = 0;
1005                  do {                  do {
1006                      Object item = p.item;                      final Object item = p.item;
1007                      if (item != p && (a[i] = item) != null)                      if (p.isData) {
1008                          ++i;                          if (item != null)
1009                                a[i++] = item;
1010                        }
1011                        else if (item == null) {
1012                            p = null;
1013                            break;
1014                        }
1015                      if (p == (p = p.next))                      if (p == (p = p.next))
1016                          p = firstDataNode();                          p = firstDataNode();
1017                  } while (p != null && i < n && p.isData);                  } while (p != null && i < n);
1018                  if ((current = p) == null)                  exhausted = ((current = p) == null);
                     exhausted = true;  
1019                  if (i > 0) {                  if (i > 0) {
1020                      batch = i;                      batch = i;
1021                      return Spliterators.spliterator                      return Spliterators.spliterator
# Line 1028  Line 1033 
1033              if (action == null) throw new NullPointerException();              if (action == null) throw new NullPointerException();
1034              if (!exhausted &&              if (!exhausted &&
1035                  ((p = current) != null || (p = firstDataNode()) != null)) {                  ((p = current) != null || (p = firstDataNode()) != null)) {
1036                    current = null;
1037                  exhausted = true;                  exhausted = true;
1038                  do {                  do {
1039                      Object item = p.item;                      final Object item = p.item;
1040                      if (item != null && item != p)                      if (p.isData) {
1041                            if (item != null)
1042                          action.accept((E)item);                          action.accept((E)item);
1043                        }
1044                        else if (item == null)
1045                            break;
1046                      if (p == (p = p.next))                      if (p == (p = p.next))
1047                          p = firstDataNode();                          p = firstDataNode();
1048                  } while (p != null && p.isData);                  } while (p != null);
1049              }              }
1050          }          }
1051    
# Line 1047  Line 1057 
1057                  ((p = current) != null || (p = firstDataNode()) != null)) {                  ((p = current) != null || (p = firstDataNode()) != null)) {
1058                  Object item;                  Object item;
1059                  do {                  do {
1060                      if ((item = p.item) == p)                      if (p.isData)
1061                            item = p.item;
1062                        else {
1063                          item = null;                          item = null;
1064                            if (p.item == null) {
1065                                p = null;
1066                                break;
1067                            }
1068                        }
1069                      if (p == (p = p.next))                      if (p == (p = p.next))
1070                          p = firstDataNode();                          p = firstDataNode();
1071                  } while (item == null && p != null && p.isData);                  } while (item == null && p != null);
1072                  if ((current = p) == null)                  exhausted = ((current = p) == null);
                     exhausted = true;  
1073                  if (item != null) {                  if (item != null) {
1074                      action.accept((E)item);                      action.accept((E)item);
1075                      return true;                      return true;

Legend:
Removed from v.1.106  
changed lines
  Added in v.1.107

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8