async-backtrace 0.2.7

Efficient, logical 'backtraces' of async tasks.
Documentation
//! Run this example to see how `join!` turns taskdumps into trees.

#[tokio::main]
async fn main() {
    joining().await;
}

#[async_backtrace::framed]
async fn joining() {
    let (_, _) = tokio::join!(yielding(), ready());
}

#[async_backtrace::framed]
async fn yielding() {
    tokio::task::yield_now().await;
}

#[async_backtrace::framed]
async fn ready() {
    println!("{}", async_backtrace::taskdump_tree(true));
}