16 |
|
import java.util.concurrent.TimeUnit; |
17 |
|
import java.util.concurrent.locks.LockSupport; |
18 |
|
import java.util.Spliterator; |
19 |
+ |
import java.util.Spliterators; |
20 |
|
import java.util.stream.Stream; |
21 |
|
import java.util.stream.Streams; |
22 |
|
import java.util.function.Consumer; |
929 |
|
Node p; int n; |
930 |
|
final LinkedTransferQueue<E> q = this.queue; |
931 |
|
if (!exhausted && (n = batch + 1) > 0 && n <= MAX_BATCH && |
932 |
< |
((p = current) != null || (p = q.firstDataNode()) != null)) { |
932 |
> |
((p = current) != null || (p = q.firstDataNode()) != null) && |
933 |
> |
p.next != null) { |
934 |
|
Object[] a = new Object[batch = n]; |
935 |
|
int i = 0; |
936 |
|
do { |
941 |
|
} while (p != null && i < n); |
942 |
|
if ((current = p) == null) |
943 |
|
exhausted = true; |
944 |
< |
return Collections.arraySnapshotSpliterator |
944 |
> |
return Spliterators.spliterator |
945 |
|
(a, 0, i, Spliterator.ORDERED | Spliterator.NONNULL | |
946 |
|
Spliterator.CONCURRENT); |
947 |
|
} |
989 |
|
return false; |
990 |
|
} |
991 |
|
|
992 |
+ |
public long estimateSize() { return Long.MAX_VALUE; } |
993 |
+ |
|
994 |
|
public int characteristics() { |
995 |
|
return Spliterator.ORDERED | Spliterator.NONNULL | |
996 |
|
Spliterator.CONCURRENT; |