ref: 70f97fe9898b4852257a9268e6ea0592ee7e3a88
dir: /lib/thread/ncpu+linux.myr/
use std
use sys
pkg thread =
const ncpu : (-> int)
;;
const ncpu = {
var cpubuf : uint64[4]
var n
sys.sched_getaffinity(sys.getpid(), sizeof(uint64[4]), (&cpubuf : uint64#))
n = 0
for b : cpubuf[:]
if b != 0
n += count(b)
;;
;;
-> n
}
const count = {b
var n = 0
for var i = 0; i < 8*sizeof(uint64); i++
if b & (1<<i) != 0
n++
;;
;;
-> n
}