Prosjekter

PVV projects, made by PVV members

Kom på hackekveld :)

rtkit-client-rs (1.0.0)

Published 2026-01-02 14:47:37 +01:00 by oysteikt in Projects/rtkit-client-rs

Installation

[registry]
default = "gitea"

[registries.gitea]
index = "sparse+" # Sparse index
# index = "" # Git

[net]
git-fetch-with-cli = true
cargo add rtkit-client-rs@1.0.0

About this package

Client library for requesting privileged scheduling from rtkit

Docs

rtkit-client-rs

Small implementation of the rtkit dbus interface in rust.

This interface lets you request real-time scheduling for one or more threads.

Usage

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}");
        }
    }
}

Dependencies

ID Version
nix ^0.30.1
thiserror ^2.0.12
zbus ^5.9.0

Keywords

rtkit scheduling realtime
Details
Cargo
2026-01-02 14:47:37 +01:00
0
projects@pvv.ntnu.no
MIT
12 KiB
Assets (1)
Versions (1) View all
1.0.0 2026-01-02