1 use test_programs::wasi::clocks::monotonic_clock;
2 
main()3 fn main() {
4     sleep_10ms();
5     sleep_0ms();
6     sleep_backwards_in_time();
7 }
8 
sleep_10ms()9 fn sleep_10ms() {
10     let dur = 10_000_000;
11     let p = monotonic_clock::subscribe_instant(monotonic_clock::now() + dur);
12     p.block();
13     let p = monotonic_clock::subscribe_duration(dur);
14     p.block();
15 }
16 
sleep_0ms()17 fn sleep_0ms() {
18     let p = monotonic_clock::subscribe_instant(monotonic_clock::now());
19     p.block();
20     let p = monotonic_clock::subscribe_duration(0);
21     assert!(
22         p.ready(),
23         "timer subscription with duration 0 is ready immediately"
24     );
25 }
26 
sleep_backwards_in_time()27 fn sleep_backwards_in_time() {
28     let p = monotonic_clock::subscribe_instant(monotonic_clock::now() - 1);
29     assert!(
30         p.ready(),
31         "timer subscription for instant which has passed is ready immediately"
32     );
33 }
34