use std::io;
pub(crate) struct Cpu;
impl Cpu {
pub(crate) fn pin(cpu: u16) -> io::Result<()> {
let mut set: libc::cpu_set_t = unsafe { std::mem::zeroed() };
unsafe {
libc::CPU_ZERO(&mut set);
libc::CPU_SET(cpu as usize, &mut set);
}
let rc =
unsafe { libc::sched_setaffinity(0, std::mem::size_of::<libc::cpu_set_t>(), &set) };
if rc != 0 {
Err(io::Error::last_os_error())
} else {
Ok(())
}
}
}