#[cfg(not(feature = "async"))]
pub use std::thread::JoinHandle;
#[cfg(feature = "async")]
pub use tokio::task::JoinHandle;
#[cfg(not(feature = "async"))]
#[macro_export]
macro_rules! spawn {
($rt:expr, $($e:tt)*) => {
std::thread::spawn(move || {
$($e)*
})
};
}
#[cfg(feature = "async")]
#[macro_export]
macro_rules! spawn {
($rt:expr, $($e:tt)*) => {
$rt.spawn(async move {
$($e)*
})
};
}
#[cfg(not(feature = "async"))]
#[macro_export]
macro_rules! join {
($rt:expr, $e:expr) => {
$e.join()
}
}
#[cfg(feature = "async")]
#[macro_export]
macro_rules! join {
($rt:expr, $e:expr) => {
$rt.block_on($e)
}
}