open-nomad/vendor/github.com/tklauser/numcpus
..
.cirrus.yml
go.mod
go.sum
LICENSE
numcpus.go
numcpus_bsd.go
numcpus_linux.go
numcpus_solaris.go
numcpus_unsupported.go
README.md

numcpus

Go Reference GitHub Action Status Go Report Card

Package numcpus provides information about the number of CPU.

It gets the number of CPUs (online, offline, present, possible or kernel maximum) on a Linux, Darwin, FreeBSD, NetBSD, OpenBSD, DragonflyBSD or Solaris/Illumos system.

On Linux, the information is retrieved by reading the corresponding CPU topology files in /sys/devices/system/cpu.

Not all functions are supported on Darwin, FreeBSD, NetBSD, OpenBSD, DragonflyBSD and Solaris/Illumos.

Usage

package main

import (
	"fmt"
	"os"

	"github.com/tklauser/numcpus"
)

func main() {
	online, err := numcpus.GetOnline()
	if err != nil {
		fmt.Fprintf(os.Stderr, "GetOnline: %v\n", err)
	}
	fmt.Printf("online CPUs: %v\n", online)

	possible, err := numcpus.GetPossible()
	if err != nil {
		fmt.Fprintf(os.Stderr, "GetPossible: %v\n", err)
	}
	fmt.Printf("possible CPUs: %v\n", possible)
}

References