-
-
Notifications
You must be signed in to change notification settings - Fork 740
Improved parallel foreach amap #217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…Buf and disallow using this overload with map because it's not safe. At some point it may be possible to special-case this overload of asyncBuf to work with map and parallel foreach, but until I decide what the best way to do that is and get around to implementing it, it should just be an error.
…ap. When working on std.parallel_algorithm, I discovered a way of doing these that was so much simpler, more elegant, more efficient and less bug-prone that I wanted to completely rip up the old implementation. Also, a few minor cleanups: 1. amap now can use any random access assignable range for output, not just an array. 2. map now statically disallows the buffer recycling overload of asyncBuf as input, since this never worked correctly. 3. Improved memory management for reduce to avoid the GC.
…hat I forgot about during all the refactoring.
Ping? |
…d was put in while debugging.
Forgot to mention, this pull request makes use of my changes to std.range in the unittests. Do not merge until after the std.range pull is merged. |
…d for asyncBuf and map.
…t went undetected for so long.
…easons that no longer apply. Changes to implementation details only.
Ok, I put some tests in for exception handling, and cleaned up a little cruft. |
This pull request now also contains an important bug fix (for Bug 6587) to allow Task to be used with const/immutable. I'd really like to get this into next release because it's a massive improvement to std.parallelism. |
…in, I have no idea when/how it got removed).
Improved parallel foreach amap
Handle empty issue list more gently + avoid fetching the git remote directly
Massive improvements to the implementation of parallel foreach and amap. When working on std.parallel_algorithm, I discovered a way of doing these that was so much simpler, more elegant, more efficient and less bug-prone that I wanted to completely rip up the old implementation. Also, a few minor cleanups: