From ca1fcad2aa018c76bea26988537cd1f5ca5c8e02 Mon Sep 17 00:00:00 2001 From: Minje Park Date: Sun, 17 Mar 2019 23:18:29 +0900 Subject: [PATCH] retrieve a cpu count depends on an boolean argument --- cpu/cpu_darwin.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cpu/cpu_darwin.go b/cpu/cpu_darwin.go index da215ab..34dbf71 100644 --- a/cpu/cpu_darwin.go +++ b/cpu/cpu_darwin.go @@ -88,5 +88,18 @@ func InfoWithContext(ctx context.Context) ([]InfoStat, error) { } func CountsWithContext(ctx context.Context, logical bool) (int, error) { - return runtime.NumCPU(), nil + var cpuArgument string + if logical { + cpuArgument = "hw.logicalcpu" + } else { + cpuArgument = "hw.physicalcpu" + } + + count, err := unix.SysctlUint32(cpuArgument) + + if err != nil { + return runtime.NumCPU(), nil + } + + return int(count), nil }