blob: 5c2ea1568ecaf33f0f92b88a7438ae28a047d67f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
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
}
|