Add tokio as an optional bevy_tasks backend #6762
Draft
+650
−3
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.
Objective
tokio
is the de facto ecosystem standard async executor for the Rust ecosystem. It was initially avoided as it doesn't support all of the target systems that Bevy aims to support (i.e. WASM).Solution
Add an optional feature flag for enabling
tokio
as a backing async executor for non-WASM platforms, and enable it by default for them. Usetokio::runtime::Runtime
as a replacement forasync_executor
.Note: this change conflicts heavily and is mutually exclusive with #4740. Additional care will needed to be taken to support all of the use cases of both options.
This PR is in a draft state as it currently deadlocks on something during normal program execution. This will need some investigation.
Changelog
Added:
tokio
as an optional and default backend async executor for non-WASM platforms.