package sysinfo // import "github.com/docker/docker/pkg/sysinfo" | |
import "golang.org/x/sys/unix" | |
// numCPU queries the system for the count of threads available | |
// for use to this process. | |
// | |
// Returns 0 on errors. Use |runtime.NumCPU| in that case. | |
func numCPU() int { | |
// Gets the affinity mask for a process: The very one invoking this function. | |
var mask unix.CPUSet | |
err := unix.SchedGetaffinity(0, &mask) | |
if err != nil { | |
return 0 | |
} | |
return mask.Count() | |
} |