Skip to content

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

License

Notifications You must be signed in to change notification settings

benaubin/os_clock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

os_clock

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

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:

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).

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages