1mod tokio;
11
12#[cfg(feature = "backend-experiments")]
13mod dispatch_gate;
14
15#[cfg(feature = "backend-experiments")]
16#[doc(hidden)]
17pub mod experimental;
18
19use crate::tracing::init_tracing;
20
21pub use crate::tasks::tokio::mpsc;
22pub use crate::tasks::tokio::oneshot;
23pub use crate::tasks::tokio::sleep;
24pub use crate::tasks::tokio::timeout;
25pub use crate::tasks::tokio::watch;
26pub use crate::tasks::tokio::CancellationToken;
27pub use crate::tasks::tokio::{
28 block_in_place, spawn, spawn_blocking, task_id, Handle, JoinHandle, Runtime, RuntimeFlavor,
29};
30pub use crate::tasks::tokio::{BroadcastStream, ReceiverStream};
31use std::future::Future;
32
33pub fn run<F: Future>(future: F) -> F::Output {
35 init_tracing();
36
37 let rt = Runtime::new().unwrap();
38 rt.block_on(future)
39}
40
41pub fn block_on<F: Future>(future: F) -> F::Output {
44 Handle::current().block_on(future)
45}
46
47pub use crate::tasks::tokio::ctrl_c;