Comments (4)
Yes, by instrumenting wakers and also resources (#39), we should be able to correlate these relationships and show them in the Console.
from console.
I did a rough prototype pass of this a fairly long while ago (which, I think, is probably outdated and won't work with the latest Tokio). One thing I did is add spans to the various resources' poll
methods, as well, so that when a waker is cloned, we can record which resource we are registering interest in, and (in the case of resources that have multiple forms of readiness) which form of readiness we are polling for.
from console.
The other way around could also work. Since a "subscriber" already needs to produce a unique span ID, it'd be useful to be able to reuse that than to have a second unique counter. The "other way" would be to save the span ID into Tokio's RawTask
struct, so that the waker logs can grab it and emit it.
It does seem like a bit of annoying propagating of an extra argument through all the internal Tokio task creation code, but conditionally (so plenty of cfg_trace
). But it seems like the way.
from console.
Done in tokio-rs/tokio#3836, opened #42 for next step.
from console.
Related Issues (20)
- subscriber: add grpc-web support to console-subscriber HOT 4
- a global default trace dispatcher has already been set HOT 8
- RUSTSEC-2021-0145: Potential unaligned read
- Console doesn't detect self wakes from `tokio::task::yield_now()` after Tokio 1.23 HOT 5
- Key presses happen twice on Windows HOT 4
- `blocking` and `block_on` tasks have false positive lints HOT 1
- Autodetection of new execution not always working
- Make better use of space in task detail screen HOT 1
- Format "last woken" time prettily HOT 4
- tokio::task::spawn_blocking() tasks show as 'warning: task has never yielded' HOT 2
- Analyze log files and log playback HOT 1
- tokio-console cannot handle window path correctly
- tokio-console cannot show the pause status correctly HOT 5
- assertion failed: meta.is_event() HOT 3
- The application panicked (crashed) when trying to `ENTER` on a resource HOT 1
- Crash when selecting a task that no longer exists HOT 2
- Improve Task Diagnostics UI readability for Location and other columns with dynamic widths
- `tokio-console` fails to compile HOT 3
- Max Width Restriction? HOT 1
- Never-ending tasks stop showing up after a while: `Message too big` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from console.