Mantis/mantis/src/utils/cpu_affinity.rs
ParrotXray 46a69dd49c
refactor/rename-mantis (#12)
* refactor: Rename project from NetGuardia to Mantis

* fix: convert mantis-frontend from tracked files to submodule

* wip

* feat: Suricata integration stabilization and config unification
Fix a series of bugs in the Suricata daemon integration and unify
configuration so users interact only with config.toml.

* docs: sur-001-c1 Suricata integration stabilization findings
2026-05-22 18:42:51 +08:00

15 lines
408 B
Rust

use std::thread;
pub fn set_cpu_affinity(cpu: usize) {
#[cfg(target_os = "linux")]
unsafe {
let mut cpuset: libc::cpu_set_t = std::mem::zeroed();
libc::CPU_SET(cpu % num_cpus(), &mut cpuset);
libc::sched_setaffinity(0, std::mem::size_of::<libc::cpu_set_t>(), &cpuset);
}
}
pub fn num_cpus() -> usize {
thread::available_parallelism().map(|n| n.get()).unwrap_or(1)
}