Crates.io | isleep |
lib.rs | isleep |
version | 0.3.2 |
source | src |
created_at | 2023-09-03 08:26:38.660463 |
updated_at | 2023-09-13 17:53:25.539225 |
description | Intermittent sleeping and return the control flow inbetween |
homepage | https://github.com/raui100/iSleep |
repository | https://github.com/raui100/iSleep |
max_upload_size | |
id | 962142 |
size | 7,573 |
Provides the functions snooze
and accurate_snooze
for intermittent sleeping which return the control flow inbetween.
Relies on platform support for std::time
and std::thread
.
// Sleeping for a total of 1 s
let total = std::time::Duration::from_secs(1);
// Interrupting the sleep after 100 ms
let len = std::time::Duration::from_millis(100);
// Starting now
let start = std::time::Instant::now();
// Sleeps for `total` in steps up to `len`
// Wont sleep longer than `total` within accuracy of the platform
while snooze(start, total, len) {
println!("Checking if the user pressed CTRL+C...");
}
The accuracy is platform dependent and might be low for small durations (eg: <20 ms on Windows).
Higher accuracy can be achieved with the accuracy
feature and accurate_snooze
which
utilizes spin_sleep.
cargo add isleep --features=accuracy