Encounter order: take 2 (original) (raw)
Paul Sandoz paul.sandoz at oracle.com
Thu Jan 31 14:42:19 PST 2013
- Previous message: Encounter order: take 2
- Next message: Encounter order: take 2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Jan 31, 2013, at 2:20 PM, Tim Peierls <tim at peierls.net> wrote:
On Thu, Jan 31, 2013 at 6:50 AM, Paul Sandoz <paul.sandoz at oracle.com> wrote: An intermediate operation must preserve encounter order of output stream if:
a.1) the input stream to the intermediate operation has encounter order (either because the stream source has encounter order or because a previous intermediate operation injects encounter order); and a.2) the terminal operation preserves encounter order. An intermediate operation may not preserve encounter order of the output stream if: b.1) the input stream to the intermediate operation does not have encounter order (either because the stream source does not have encounter order or because a previous intermediate operation clears encounter order); or b.2) the terminal operation does not preserve encounter order and the intermediate operation is in a sequence of operations, to be computed, where the last operation in the sequence is the terminal operation and all operations in the sequence are computed in parallel. Shouldn't a1 && a2 == !(b1 || b2) ? The extra condition in b2 isn't reflected in the a side.
Well spotted finding the hole. I think it may be easier to state something like:
--
An intermediate operation must preserve encounter order of the output stream unless one of the following conditions is true, which if so the intermediate operation may not preserve encounter order:
the input stream to the intermediate operation does not have encounter order (either because the stream source does not have encounter order or because a previous intermediate operation clears encounter order).
the terminal operation does not preserve encounter order and the intermediate operation is in a sequence of operations, to be computed, where the last operation in the sequence is the terminal operation and all operations in the sequence are computed in parallel.
--
Paul.
- Previous message: Encounter order: take 2
- Next message: Encounter order: take 2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the lambda-libs-spec-observers mailing list