#[cfg(not(target_arch = "wasm32"))]
use std::sync::atomic::{AtomicUsize, Ordering};
#[cfg(not(target_arch = "wasm32"))]
static RAN: AtomicUsize = AtomicUsize::new(0);
#[cfg(not(target_arch = "wasm32"))]
#[some_executor::main]
async fn main() {
RAN.fetch_add(1, Ordering::Relaxed);
let installed = some_executor::global_executor::global_executor(|e| e.is_some());
assert!(
installed,
"the backend must install itself globally before running the main future"
);
let (sender, receiver) = r#continue::continuation();
some_executor::task::Task::without_notifications(
"main_macro spawned".to_string(),
some_executor::task::Configuration::default(),
async move {
RAN.fetch_add(1, Ordering::Relaxed);
sender.send(());
},
)
.spawn_static_current();
receiver.await;
assert_eq!(
RAN.load(Ordering::Relaxed),
2,
"the main future and the task it spawned both ran"
);
println!("some_executor::main expansion: OK");
}
#[cfg(target_arch = "wasm32")]
fn main() {}