in src/rt_linux.rs [89:112]
fn rtkit_set_realtime(thread: u64, pid: u64, prio: u32) -> Result<(), Box<dyn Error>> {
let m = if unsafe { libc::getpid() as u64 } == pid {
let mut m = Message::new_method_call(
"org.freedesktop.RealtimeKit1",
"/org/freedesktop/RealtimeKit1",
"org.freedesktop.RealtimeKit1",
"MakeThreadRealtime",
)?;
m.append_items(&[thread.into(), prio.into()]);
m
} else {
let mut m = Message::new_method_call(
"org.freedesktop.RealtimeKit1",
"/org/freedesktop/RealtimeKit1",
"org.freedesktop.RealtimeKit1",
"MakeThreadRealtimeWithPID",
)?;
m.append_items(&[pid.into(), thread.into(), prio.into()]);
m
};
let c = Connection::get_private(BusType::System)?;
c.send_with_reply_and_block(m, DBUS_SOCKET_TIMEOUT)?;
Ok(())
}