Skip to content

Commit 9a750c7

Browse files
committed
fix: fixed per-core CPU load overflow crash after long uptime (#3476)
1 parent 5d6f3d2 commit 9a750c7

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

Modules/CPU/readers.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,18 @@ internal class LoadReader: Reader<CPU_Load> {
5050
var total: Int32
5151
if let prevCpuInfo = self.prevCpuInfo {
5252
inUse = self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_USER)]
53-
- prevCpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_USER)]
54-
+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_SYSTEM)]
55-
- prevCpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_SYSTEM)]
56-
+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_NICE)]
57-
- prevCpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_NICE)]
58-
total = inUse + (self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_IDLE)]
59-
- prevCpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_IDLE)])
53+
&- prevCpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_USER)]
54+
&+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_SYSTEM)]
55+
&- prevCpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_SYSTEM)]
56+
&+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_NICE)]
57+
&- prevCpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_NICE)]
58+
total = inUse &+ (self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_IDLE)]
59+
&- prevCpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_IDLE)])
6060
} else {
6161
inUse = self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_USER)]
62-
+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_SYSTEM)]
63-
+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_NICE)]
64-
total = inUse + self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_IDLE)]
62+
&+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_SYSTEM)]
63+
&+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_NICE)]
64+
total = inUse &+ self.cpuInfo[Int(CPU_STATE_MAX * i + CPU_STATE_IDLE)]
6565
}
6666

6767
if total != 0 {

0 commit comments

Comments
 (0)