pub fn resolve_cpu_affinity(
policy: CpuAffinityPolicy,
inputs: &[CpuAffinityInput],
default_domain: CpuDomainId,
) -> Result<CpuAffinitySelection, CpuAffinityResolutionError>Expand description
Resolve a CPU execution domain from input affinity metadata.
Unknown affinities and zero-byte inputs do not contribute to dominant-byte
scoring. When no input contributes, default_domain is selected. Equal
positive totals are resolved in favor of the smallest CpuDomainId. The
input slice is only read; the resolver never retags or rehomes an input.
Use resolve_cpu_affinity_with_override when an operation-local explicit
placement has already been selected.
§Examples
use tenferro_cpu::{resolve_cpu_affinity, CpuAffinityInput, CpuAffinityPolicy};
use tenferro_tensor::CpuDomainId;
let inputs = [
CpuAffinityInput { domain: Some(CpuDomainId::new(8)), logical_bytes: 6 },
CpuAffinityInput { domain: Some(CpuDomainId::new(3)), logical_bytes: 2 },
];
let selected = resolve_cpu_affinity(
CpuAffinityPolicy::DominantInputBytes,
&inputs,
CpuDomainId::new(1),
)?;
assert_eq!(selected.domain, CpuDomainId::new(8));§Errors
Returns CpuAffinityResolutionError::LogicalByteCountOverflow when one
domain’s logical byte total cannot be represented by usize, or
CpuAffinityResolutionError::MultipleKnownDomains when strict policy sees
more than one known input domain.