#real-time #thread #priority #bump #applications #promote

audio_thread_priority

Bump a thread to real-time priority, for audio work, on Linux, Windows and macOS

43 releases (breaking)

0.32.0 Mar 14, 2024
0.30.0 Nov 6, 2023
0.27.1 Mar 30, 2023
0.26.1 Mar 22, 2022
0.3.0 Jan 25, 2018

#71 in Audio

Download history 1029/week @ 2024-07-13 590/week @ 2024-07-20 821/week @ 2024-07-27 792/week @ 2024-08-03 505/week @ 2024-08-10 799/week @ 2024-08-17 877/week @ 2024-08-24 435/week @ 2024-08-31 820/week @ 2024-09-07 1042/week @ 2024-09-14 855/week @ 2024-09-21 473/week @ 2024-09-28 716/week @ 2024-10-05 813/week @ 2024-10-12 441/week @ 2024-10-19 512/week @ 2024-10-26

2,548 downloads per month
Used in audir

MPL-2.0 license

56KB
1K SLoC

audio_thread_priority

Synopsis:


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

This library can also be used from C or C++ using the included header and compiling the rust code in the application. By default, a .a is compiled to ease linking.

License

MPL-2

Dependencies

~0–9.5MB
~85K SLoC