1mod tokio;
11
12use ::tokio::runtime::Handle;
13
14use crate::tracing::init_tracing;
15
16pub use crate::tasks::tokio::mpsc;
17pub use crate::tasks::tokio::oneshot;
18pub use crate::tasks::tokio::sleep;
19pub use crate::tasks::tokio::timeout;
20pub use crate::tasks::tokio::watch;
21pub use crate::tasks::tokio::CancellationToken;
22pub use crate::tasks::tokio::{spawn, spawn_blocking, task_id, JoinHandle, Runtime};
23pub use crate::tasks::tokio::{BroadcastStream, ReceiverStream};
24use std::future::Future;
25
26pub fn run<F: Future>(future: F) -> F::Output {
28 init_tracing();
29
30 let rt = Runtime::new().unwrap();
31 rt.block_on(future)
32}
33
34pub fn block_on<F: Future>(future: F) -> F::Output {
36 Handle::current().block_on(future)
37}
38
39pub use crate::tasks::tokio::ctrl_c;