use std::{thread, time::Duration}; use microasync::{join, sync}; use microasync_rt::defer; fn main() { println!( "{}", sync(join!(test(), async { is_alive().await; "".to_owned() }))[0] ); } async fn is_alive() { println!( "The runtime is NOT blocked by the test() function: This future runs *after* the poll \ to the test() function, so if this runs before test() is done, that means test() returned \ Poll::Pending and is not blocking." ); } async fn test() -> String { defer( |(s,)| { thread::sleep(Duration::from_millis(2000)); s + "world" }, ("Hello, ".to_owned(),), ) .await }