tracing: instrument mpsc channels #4644
Closed
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.
This PR adds instrumentation to bounded & unbounded mpsc channels, similar to the existing tracing for oneshot/mutexes/etc.
Currently the primary consumer of this tracing would be the
tokio-console
(see feature request) however theconsole-subscriber
crate will deadlock with this PR applied and potentially other tracing subscribers that also use an mpsc channel internally too. I'm not sure if this should be merged before thetracing
/console-subscriber
deadlock is fixed (I suspect not) but wanted to get a review on the changes, as well as sharing a reproducer. I'm more than happy to rebase this as needed until everything is ready to merge 👍This PR copies the
#[cfg(...)]
approach of #4302, but I noticed the comment from @carllerche suggested cleaning this up - I'm more than happy to do this in a follow-up PR and clean up the existing tracing#[cfg(..)]
too.---
tracing: instrument mpsc channels (4526247)