10 releases (4 breaking)
0.5.2 | Jan 22, 2023 |
---|---|
0.5.1 | Jan 22, 2023 |
0.4.0 | Jan 21, 2023 |
0.3.3 | Jan 20, 2023 |
0.1.0 | Jan 15, 2023 |
#509 in Concurrency
34KB
607 lines
Native Timer for Rust
Provide a timer functionality which uses OS capabilities. Currently supports Windows, Linux, and MacOS.
Currently, only both Windows and Linux platforms are supported.
Features
tracker
(default) - Enable static callback tracker. It should minimize the native callback into an invalid timer context, that has been recently destroyed.
Examples
To fire an one-shot task:
# use std::sync::{Arc, atomic::{AtomicBool, Ordering}};
# use std::thread;
# use std::time::Duration;
use native_timer::fire_oneshot;
let flag = Arc::new(AtomicBool::new(false));
let shared_flag = flag.clone();
fire_oneshot(Duration::from_millis(100), None, move || {
let _ = &shared_flag.store(true, Ordering::SeqCst);
}).unwrap();
thread::sleep(Duration::from_millis(200));
assert!(flag.load(Ordering::SeqCst));
For more usages, see /src/examples/simple.rs
.
Credit
Linux and MacOS implementations are recovered from Autd3 open source library
on tag v1.10.0
, which is before being removed by commits afterwards.
Dependencies
~0.4–36MB
~535K SLoC