tokio/runtime/scheduler/multi_thread/handle/
taskdump.rs1use super::Handle;
2
3use crate::runtime::Dump;
4
5impl Handle {
6 pub(crate) async fn dump(&self) -> Dump {
7 let trace_status = &self.shared.trace_status;
8
9 trace_status.start_trace_request(&self).await;
11
12 let result = loop {
13 if let Some(result) = trace_status.take_result() {
14 break result;
15 } else {
16 self.notify_all();
17 trace_status.result_ready.notified().await;
18 }
19 };
20
21 trace_status.end_trace_request(&self).await;
23
24 result
25 }
26}