Run Format

Source file src/runtime/debug.go

Documentation: runtime

  // Copyright 2009 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  package runtime
  import (
  // GOMAXPROCS sets the maximum number of CPUs that can be executing
  // simultaneously and returns the previous setting. If n < 1, it does not
  // change the current setting.
  // The number of logical CPUs on the local machine can be queried with NumCPU.
  // This call will go away when the scheduler improves.
  func GOMAXPROCS(n int) int {
  	if GOARCH == "wasm" && n > 1 {
  		n = 1 // WebAssembly has no threads yet, so only one CPU is possible.
  	ret := int(gomaxprocs)
  	if n <= 0 || n == ret {
  		return ret
  	// newprocs will be processed by startTheWorld
  	newprocs = int32(n)
  	return ret
  // NumCPU returns the number of logical CPUs usable by the current process.
  // The set of available CPUs is checked by querying the operating system
  // at process startup. Changes to operating system CPU allocation after
  // process startup are not reflected.
  func NumCPU() int {
  	return int(ncpu)
  // NumCgoCall returns the number of cgo calls made by the current process.
  func NumCgoCall() int64 {
  	var n int64
  	for mp := (*m)(atomic.Loadp(unsafe.Pointer(&allm))); mp != nil; mp = mp.alllink {
  		n += int64(mp.ncgocall)
  	return n
  // NumGoroutine returns the number of goroutines that currently exist.
  func NumGoroutine() int {
  	return int(gcount())

View as plain text