Remove unnecessary Task's in actor #88
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.
A plain Task { ... } (e.g. not defered) inherits the actor’s executor and removing them doesn't change the current behavior. The fact that the functions are actor-isolated is enough to ensure the code won't run on the main actor.
Discussion
As long as we're fine with the file system operations being isolated to the same actor (i.e. functions will be able to block each other) this should be a simple and safe solution. The downside being that it might be less performant than some concurrent solution. Is this an issue?
I'm not sure it's trivial to implement an equally safe solution that supports parallell operations. E.g. what about related operations on/in the same file or directory?
Thoughts/input?