wip remove future overhead when tracing is off. #15679
Draft
+120
−50
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.
Rationale for this change
The current tracing implementation adds an overhead of boxing all spawned futures and closures, even if tracing is off.
What changes are included in this PR?
The tracing API is changed to use a
Spawner
abstraction overJoinSet
and the global tokio functions, allowing to spawn futures and closures unchanged if tracing is off.Are these changes tested?
The tracing tests pass.
Are there any user-facing changes?
I don't think so.
@geoffreyclaude can you take a look? I'd like to know if this is desired before I make this PR nicer.