Implement get_processor_core_count without libc for Linux.

This commit is contained in:
Jeroen van Rijn
2026-02-09 18:16:16 +01:00
parent 7a7127aa13
commit ec05bb57dc

View File

@@ -57,8 +57,15 @@ _get_current_thread_id :: proc "contextless" () -> int {
}
@(private="package")
_get_processor_core_count :: proc() -> int {
return int(_unix_get_nprocs())
_get_processor_core_count :: proc() -> (core_count: int) {
cpu_set: [128]u64
if err := linux.sched_getaffinity(0, size_of(cpu_set), &cpu_set); err != linux.Errno(-1) {
for set in cpu_set {
core_count += int(intrinsics.count_ones(set))
}
}
return
}
@(private="package")