#![warn(missing_docs)]
#![deny(warnings)]
#[cfg(unix)]
pub mod unix;
#[cfg(unix)]
pub use unix::*;
#[cfg(windows)]
pub mod windows;
#[cfg(windows)]
pub use windows::*;
#[derive(Debug, Copy, Clone)]
pub enum Error {
Priority(&'static str),
OS(i32),
Ffi(&'static str),
}
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
pub enum ThreadPriority {
Min,
Specific(u32),
#[cfg(target_os = "linux")]
Deadline(u64, u64, u64),
Max,
}
impl ThreadPriority {
pub fn set_for_current(self) -> Result<(), Error> {
set_current_thread_priority(self)
}
}
#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
pub struct Thread {
pub priority: ThreadPriority,
pub id: ThreadId,
}
impl Thread {
pub fn current() -> Result<Thread, Error> {
Ok(Thread {
priority: thread_priority()?,
id: thread_native_id(),
})
}
}