diff --git a/src/core/utils/sys/compute.rs b/src/core/utils/sys/compute.rs index 8bb4f704..68cfdf0e 100644 --- a/src/core/utils/sys/compute.rs +++ b/src/core/utils/sys/compute.rs @@ -65,7 +65,15 @@ where } /// Get the core affinity for this thread. -pub fn get_affinity() -> impl Iterator { from_mask(CORE_AFFINITY.get()) } +pub fn get_affinity() -> impl Iterator { + CORE_AFFINITY + .get() + .ne(&0) + .then_some(from_mask(CORE_AFFINITY.get())) + .or_else(|| Some(from_mask(*CORES_AVAILABLE))) + .into_iter() + .flatten() +} /// List the cores sharing SMT-tier resources pub fn smt_siblings() -> impl Iterator {