RFR 8027316 Distinct operation on an unordered stream should not be a barrier
Henry Jen
henry.jen at oracle.com
Wed Oct 30 16:54:09 UTC 2013
Looks good to me.
In the test,
> Integer one = Stream.iterate(1, i -> i + 1).unordered().parallel().distinct().findAny().get();
> assertEquals(one.intValue(), 1);
The implementation is probably make sure this will return 1, but is that what we spec to do? I sort of think it can have various values depends on how many working threads and their scheduling.
Cheers,
Henry
On Oct 30, 2013, at 2:30 AM, Paul Sandoz <paul.sandoz at oracle.com> wrote:
> Hi
>
> Please review:
>
> http://cr.openjdk.java.net/~psandoz/tl/JDK-8027316-distinct-unordered/webrev/
>
> The fix ensures that the distinct operation, for a parallel stream, is not a full barrier if the upstream is unordered (and not already distinct, otherwise it is a no-op).
>
> Thanks,
> Paul.
More information about the core-libs-dev
mailing list