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.
Per #723 it may be useful to have an environment without Send and Sync.
This was a bit of slog, but it wasn't actually that bad. The main things that were needed:
async_trait::async_trait(?Send)
Send
andSync
bounds almost everywhere.LocalBoxFuture
instead ofBoxFuture
.boxed_local()
instead of.boxed()
tokio::task::spawn_local()
instead oftokio::spawn()
. Also add sometokio::task::TaskSet
s where needed.TEST_HARNESS
.Overall it was mostly straightforward. Everything compiles and all tests pass.
If someone can confirm this is actually useful I'm happy to take a second pass and try and make it configurable via a feature flag.