aboutsummaryrefslogtreecommitdiff
path: root/core/os/process_linux.odin
diff options
context:
space:
mode:
Diffstat (limited to 'core/os/process_linux.odin')
-rw-r--r--core/os/process_linux.odin11
1 files 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")