hg: lambda/lambda/jdk: Eliminate pull mode traversal of streams.

brian.goetz at oracle.com brian.goetz at oracle.com
Thu Dec 20 07:43:23 PST 2012


Changeset: 1c575e8dad2e
Author:    briangoetz
Date:      2012-12-20 10:42 -0500
URL:       http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1c575e8dad2e

Eliminate pull mode traversal of streams.
All wrapIterator methods are gone.
Short-circuit terminal ops (and iterator()) now work by wrapping an iterator
around the (source iterator, sink chain) with a buffer at the end to catch
results, and dispensing those from iterator.
Short-circuit intermediate ops (such as limit) work by adding a
feedback channel in Sink.
Contributed-by: paul.sandoz at oracle.com
Contributed-by: brian.goetz at oracle.com

! src/share/classes/java/util/stream/AbstractPipeline.java
! src/share/classes/java/util/stream/PipelineHelper.java
! src/share/classes/java/util/stream/Sink.java
! src/share/classes/java/util/stream/StreamShape.java
! src/share/classes/java/util/stream/StreamShapeFactory.java
! src/share/classes/java/util/stream/op/CollectorOps.java
! src/share/classes/java/util/stream/op/ConcurrentTabulateOp.java
! src/share/classes/java/util/stream/op/CumulateOp.java
! src/share/classes/java/util/stream/op/FilterOp.java
! src/share/classes/java/util/stream/op/FindOp.java
! src/share/classes/java/util/stream/op/FlagDeclaringOp.java
! src/share/classes/java/util/stream/op/FoldOp.java
! src/share/classes/java/util/stream/op/ForEachOp.java
! src/share/classes/java/util/stream/op/IntermediateOp.java
! src/share/classes/java/util/stream/op/MapOp.java
! src/share/classes/java/util/stream/op/MatchOp.java
! src/share/classes/java/util/stream/op/MultiMapOp.java
! src/share/classes/java/util/stream/op/SliceOp.java
! src/share/classes/java/util/stream/op/SortedOp.java
! src/share/classes/java/util/stream/op/SpinedBuffer.java
! src/share/classes/java/util/stream/op/TeeOp.java
! src/share/classes/java/util/stream/op/UniqOp.java
! src/share/classes/java/util/stream/primitive/IntAverageOp.java
! src/share/classes/java/util/stream/primitive/IntCumulateOp.java
! src/share/classes/java/util/stream/primitive/IntFilterOp.java
! src/share/classes/java/util/stream/primitive/IntFoldOp.java
! src/share/classes/java/util/stream/primitive/IntMapOp.java
! src/share/classes/java/util/stream/primitive/IntMultiMapOp.java
! src/share/classes/java/util/stream/primitive/IntSortedOp.java
! src/share/classes/java/util/stream/primitive/IntTeeOp.java
! src/share/classes/java/util/stream/primitive/IntToIntegerOp.java
! src/share/classes/java/util/stream/primitive/PrimitiveNodes.java
! src/share/classes/java/util/stream/primitive/RefToIntMapOp.java
! test-ng/tests/org/openjdk/tests/java/util/stream/OpTestCase.java
! test-ng/tests/org/openjdk/tests/java/util/stream/op/FlagOpTest.java
! test-ng/tests/org/openjdk/tests/java/util/stream/op/MultiMapOpTest.java
! test-ng/tests/org/openjdk/tests/java/util/stream/op/SliceOpTest.java
! test-ng/tests/org/openjdk/tests/java/util/stream/op/SortedOpTest.java
! test-ng/tests/org/openjdk/tests/java/util/stream/op/TeeOpTest.java
! test-ng/tests/org/openjdk/tests/java/util/stream/op/TestFlagExpectedOp.java
! test-ng/tests/org/openjdk/tests/java/util/stream/primitive/IntMultiMapOpTest.java
! test-ng/tests/org/openjdk/tests/java/util/stream/primitive/IntSliceOpTest.java



More information about the lambda-dev mailing list