use super::worker::ThreadId;
use crate::util::options::AffinityKind;
use crate::util::os::*;
impl AffinityKind {
pub fn resolve_affinity(&self, thread: ThreadId) {
match self {
AffinityKind::OsDefault => {}
AffinityKind::AllInSet(cpuset) => {
debug!("Set affinity for thread {} to cpuset {:?}", thread, cpuset);
OS::bind_current_thread_to_cpuset(cpuset.as_slice());
}
AffinityKind::RoundRobin(cpuset) => {
let cpu = cpuset[thread % cpuset.len()];
debug!("Set affinity for thread {} to core {}", thread, cpu);
OS::bind_current_thread_to_core(cpu);
}
}
}
}