39 lines
1.2 KiB
Rust
39 lines
1.2 KiB
Rust
use nix::unistd::gettid;
|
|
use std::thread;
|
|
|
|
use rtkit_client_rs::{set_current_thread_nice_level, set_current_thread_priority};
|
|
|
|
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(err) => {
|
|
eprintln!("Failed to set priority: {err}");
|
|
}
|
|
}
|
|
|
|
let requested_nice_level = -10;
|
|
let actual_nice_level =
|
|
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(err) => {
|
|
eprintln!("Failed to set nice level: {err}");
|
|
}
|
|
}
|
|
}
|