-
-
Notifications
You must be signed in to change notification settings - Fork 576
Parallel performance improvement #2159
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
Merged
vasilmkd
merged 15 commits into
typelevel:series/3.x
from
manufacturist:2155-map-both-implementation
Jul 30, 2021
Merged
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
0cd2ceb
Add GenSpawn.mapBoth & instances
manufacturist 7859ba3
Implement CommutativeApplicative.map2 in terms of mapBoth
manufacturist f33d6bc
Override GenConcurrent.mapBoth
manufacturist 09e53c2
Drop Deferred usage from mapBoth override in GenConcurrent
manufacturist 2413e27
Remove mapBoth override from GenSpawn instances
manufacturist 6d68a0c
Move mapBoth to GenSpawn & remove overrides in instances
manufacturist 9fd83cf
Fix 'safety: lhs error during rhs interruptible region' ResourceSpec
manufacturist 006a0e4
Add onCancel finalizer
manufacturist ae121bd
Drop mapBoth; override map2, map2Eval in commutativeApplicativeForPar…
manufacturist d5f4f69
Merge branch 'series/3.x' into 2155-map-both-implementation
manufacturist 2b8a670
Nitpick variable name (from old mapBoth implementation)
manufacturist f068de8
Add a Kleisli parTraverse stack overflow unit test
vasilmkd aac0738
Use Ref instead of capturing side effects
vasilmkd 0f3400f
Make map2 & map2Eval cancellation safe
manufacturist 8b19b6b
Poll after fiber cancel
manufacturist File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this code is exactly the same as below, except for the
Evalwrapping, no?Why not have one private method that returns
Now[ParallelF[F, Z]]and in the map2 case passfa, Now(fb)? I think the extra now wrap unwrap is likely trivial.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The unwrap is pretty trivial but the allocation is… less so. Particularly since you pay that penalty on a per-item basis.