Name Description Size Coverage
lib.rs # audio_thread_priority Promote the current thread, or another thread (possibly in another process), to real-time priority, suitable for low-latency audio processing. # Platforms - **macOS**: the Mach time-constraint scheduling policy. - **Windows**: the Multimedia Class Scheduler Service (MMCSS), "Pro Audio" task. - **Linux** (default, `dbus` feature enabled): rtkit, over D-Bus. This suits unprivileged, sandboxed desktop processes, since rtkit performs the privileged scheduling change on their behalf. - **Linux** (`dbus` feature disabled): direct promotion with `pthread_setschedparam` and the `SCHED_FIFO` policy. This needs no D-Bus daemon, and works whenever the process may request real-time scheduling: running as root, holding `CAP_SYS_NICE`, or with an `RLIMIT_RTPRIO` limit configured (e.g. systemd `LimitRTPRIO` or `/etc/security/limits.conf`). The requested priority defaults to 10 and can be changed with `set_rt_priority` (Linux, no-`dbus` only). - **Other platforms**: a no-op that reports success. # Example ```rust use audio_thread_priority::{promote_current_thread_to_real_time, demote_current_thread_from_real_time}; // ... on a thread that will compute audio and has to be real-time: match promote_current_thread_to_real_time(512, 44100) { Ok(h) => { println!("this thread is now bumped to real-time priority."); // Do some real-time work... match demote_current_thread_from_real_time(h) { Ok(_) => { println!("this thread is now bumped back to normal.") } Err(_) => { println!("Could not bring the thread back to normal priority.") } }; } Err(e) => { eprintln!("Error promoting thread to real-time: {}", e); } } ``` 41871 -
rt_android.rs 2310 -
rt_linux.rs Widely copied from dbus-rs/dbus/examples/rtkit.rs 12576 -
rt_linux_native.rs Native Linux real-time promotion, used when the crate is built without the `dbus` feature. Instead of asking rtkit over D-Bus, this promotes the thread directly with `pthread_setschedparam(SCHED_FIFO)`. It needs no D-Bus and no rtkit daemon, and works whenever the process is allowed to request real-time scheduling: running as root, holding `CAP_SYS_NICE`, or with an `RLIMIT_RTPRIO` limit configured (e.g. systemd `LimitRTPRIO` or `/etc/security/limits.conf`). This is the mechanism JACK and PipeWire's direct mode use. 11348 -
rt_mach.rs 5466 -
rt_win.rs 7673 -