diff --git a/README.md b/README.md index a741b15..dff1e5c 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,36 @@ This interface lets you request real-time scheduling for one or more threads. ## Usage -See the examples directory. +```rust +use nix::unistd::gettid; +use std::thread; + +use rtkit_client_rs::{set_current_thread_priority, Error}; + +fn main() { + println!("Main tid: {}", gettid()); + thread::spawn(important_thread).join().unwrap(); +} + +fn important_thread() { + println!("Important thread tid: {}", gettid()); + + let requested_priority = 40; + let actual_priority = set_current_thread_priority(Some(requested_priority.try_into().unwrap())); + match actual_priority { + Ok(actual_priority) => println!("Requested priority: {requested_priority}, Actual priority: {}", actual_priority.value()), + Err(Error::PermissionDenied) => println!("Permission denied. Do you have polkit rules set up, or otherwise have the necessary permissions?"), + Err(e) => println!("Internal zbus error: {e}"), + } + + let requested_nice_level = -10; + let actual_nice_level = rtkit_client_rs::set_current_thread_nice_level(Some( + requested_nice_level.try_into().unwrap(), + )); + match actual_nice_level { + Ok(actual_nice_level) => println!("Requested nice level: {requested_nice_level}, Actual nice level: {}", actual_nice_level.value()), + Err(Error::PermissionDenied) => println!("Permission denied. Do you have polkit rules set up, or otherwise have the necessary permissions?"), + Err(e) => println!("Internal zbus error: {e}"), + } +} +```