Fix Task.parallel_for_reduce on empty loop #67
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Task.parallel_for_reduce
gives the wrong result for the corner-case of an empty loop withstart:0
andfinish:-1
.For a simple (in this case: empty) loop that adds an array of 1s, it returns
1
rather than the expectedinit = 0
.The current code builds on a reasonable assumption of non-empty parallel loops.
The PR tests for the corner-case only once per invocation ("at top-level")
and hence should not affect the performance of such loops noticeably.