From ec05bb57dcde41428b27003dec674dcce87446af Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Mon, 9 Feb 2026 18:16:16 +0100 Subject: [PATCH] Implement `get_processor_core_count` without libc for Linux. --- core/os/process_linux.odin | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/os/process_linux.odin b/core/os/process_linux.odin index cfdb6774a..7f5608a51 100644 --- a/core/os/process_linux.odin +++ b/core/os/process_linux.odin @@ -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")