diff --git a/crates/wasi-common/cap-std-sync/src/sched/unix.rs b/crates/wasi-common/cap-std-sync/src/sched/unix.rs index ab8be60a0a41..da2ec1d143a1 100644 --- a/crates/wasi-common/cap-std-sync/src/sched/unix.rs +++ b/crates/wasi-common/cap-std-sync/src/sched/unix.rs @@ -108,8 +108,9 @@ impl WasiSched for SyncSched { std::thread::yield_now(); Ok(()) } - fn sleep(&self, duration: Duration) { - std::thread::sleep(duration) + fn sleep(&self, duration: Duration) -> Result<(), Error> { + std::thread::sleep(duration); + Ok(()) } } diff --git a/crates/wasi-common/cap-std-sync/src/sched/windows.rs b/crates/wasi-common/cap-std-sync/src/sched/windows.rs index 93545c404019..f40cb08d7238 100644 --- a/crates/wasi-common/cap-std-sync/src/sched/windows.rs +++ b/crates/wasi-common/cap-std-sync/src/sched/windows.rs @@ -128,8 +128,9 @@ impl WasiSched for SyncSched { thread::yield_now(); Ok(()) } - fn sleep(&self, duration: Duration) { - std::thread::sleep(duration) + fn sleep(&self, duration: Duration) -> Result<(), Error> { + std::thread::sleep(duration); + Ok(()) } } diff --git a/crates/wasi-common/src/sched.rs b/crates/wasi-common/src/sched.rs index 707459b4a662..10d12d6621fa 100644 --- a/crates/wasi-common/src/sched.rs +++ b/crates/wasi-common/src/sched.rs @@ -10,7 +10,7 @@ use subscription::{MonotonicClockSubscription, RwSubscription, Subscription, Sub pub trait WasiSched { fn poll_oneoff(&self, poll: &Poll) -> Result<(), Error>; fn sched_yield(&self) -> Result<(), Error>; - fn sleep(&self, duration: Duration); + fn sleep(&self, duration: Duration) -> Result<(), Error>; } pub struct Userdata(u64); diff --git a/crates/wasi-common/src/snapshots/preview_0.rs b/crates/wasi-common/src/snapshots/preview_0.rs index d027997122f7..909c22859972 100644 --- a/crates/wasi-common/src/snapshots/preview_0.rs +++ b/crates/wasi-common/src/snapshots/preview_0.rs @@ -749,8 +749,7 @@ impl<'a> wasi_unstable::WasiUnstable for WasiCtx { .flags .contains(types::Subclockflags::SUBSCRIPTION_CLOCK_ABSTIME) { - self.sched.sleep(Duration::from_nanos(clocksub.timeout)); - + self.sched.sleep(Duration::from_nanos(clocksub.timeout))?; events.write(types::Event { userdata: sub.userdata, error: types::Errno::Success, diff --git a/crates/wasi-common/src/snapshots/preview_1.rs b/crates/wasi-common/src/snapshots/preview_1.rs index ca91b84cc7b1..c4518562070a 100644 --- a/crates/wasi-common/src/snapshots/preview_1.rs +++ b/crates/wasi-common/src/snapshots/preview_1.rs @@ -920,8 +920,7 @@ impl<'a> wasi_snapshot_preview1::WasiSnapshotPreview1 for WasiCtx { .flags .contains(types::Subclockflags::SUBSCRIPTION_CLOCK_ABSTIME) { - self.sched.sleep(Duration::from_nanos(clocksub.timeout)); - + self.sched.sleep(Duration::from_nanos(clocksub.timeout))?; events.write(types::Event { userdata: sub.userdata, error: types::Errno::Success,