mirror of
https://gitlab.com/veilid/veilid.git
synced 2024-12-28 16:59:33 -05:00
35 lines
1.0 KiB
Rust
35 lines
1.0 KiB
Rust
use super::*;
|
|
use std::time::Duration;
|
|
|
|
cfg_if! {
|
|
if #[cfg(target_arch = "wasm32")] {
|
|
use async_executors::{Bindgen, Timer};
|
|
|
|
pub async fn sleep(millis: u32) {
|
|
Bindgen.sleep(Duration::from_millis(millis.into())).await
|
|
}
|
|
|
|
} else {
|
|
|
|
pub async fn sleep(millis: u32) {
|
|
if millis == 0 {
|
|
cfg_if! {
|
|
if #[cfg(feature="rt-async-std")] {
|
|
async_std::task::yield_now().await;
|
|
} else if #[cfg(feature="rt-tokio")] {
|
|
tokio::task::yield_now().await;
|
|
}
|
|
}
|
|
} else {
|
|
cfg_if! {
|
|
if #[cfg(feature="rt-async-std")] {
|
|
async_std::task::sleep(Duration::from_millis(u64::from(millis))).await;
|
|
} else if #[cfg(feature="rt-tokio")] {
|
|
tokio::time::sleep(Duration::from_millis(u64::from(millis))).await;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|