Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/benaubin/os_clock

Work with Operating System clocks from Rust. Get CPU time of another thread, monotonic time, system time - all the time.
https://github.com/benaubin/os_clock

Last synced: 17 days ago
JSON representation

Work with Operating System clocks from Rust. Get CPU time of another thread, monotonic time, system time - all the time.

Awesome Lists containing this project

README

        

# os_clock

Access various operating system clocks (such as per-thread CPU Time, system clock, monotomic, etc) on Unix-family systems.

```rust
use os_clock::{self, Clock};

let clock = cpu_clock_for_current_thread();
clock.get_time();
```

Notably, a clock for the CPU time of one thread can be accessed from another thread:

```rust
let clock = cpu_clock_for_current_thread().unwrap();

loop {
if clock.get_time().unwrap() > Duration::from_millis(5) {
break;
}
}

std::thread::spawn(move || {
assert!(clock.get_time().unwrap() > Duration::from_millis(5));

let self_clock = cpu_clock_for_current_thread().unwrap();
assert!(self_clock.get_time().unwrap() < Duration::from_millis(1));
})
.join()
.unwrap();
```

## Compatibility

Works on recent iOS, Mac, as well as Unix-family systems with a `pthread.h` that defines `pthread_getcpuclockid` (most modern Linux).