desktop: Use async IO for file browsing in AVM #19134
Open
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.
Using async IO means we're not blocking the main thread and the content doesn't freeze while reading.
In theory, Ruffle should use only async IO, as otherwise the main thread will be blocked by every bit of IO performed. According to my knowledge this is the first instance of using async IO in Ruffle.
Things to consider:
tokio::fs
is slow:tokio::fs
+ async is 1-2 orders of magnitude slower than a blocking version tokio-rs/tokio#3664,tokio::fs
, orasync-fs
(or something else) so that we are compatible with other runtimes (referring specifically tofrontend_utils
).