diff --git a/Modules/CPU/readers.swift b/Modules/CPU/readers.swift index 6b803e2e..436f0002 100644 --- a/Modules/CPU/readers.swift +++ b/Modules/CPU/readers.swift @@ -130,17 +130,17 @@ internal class LoadReader: Reader { self.response.totalUsage = self.response.systemLoad + self.response.userLoad if let cores = self.cores { - let eCoresList: [Double] = cores.filter({ $0.type == .efficiency }).compactMap { (c: core_s) in + let eCoresList: [Double] = cores.filter({ $0.type == .efficiency }).enumerated().compactMap { (i, c) -> Double? in if self.response.usagePerCore.indices.contains(Int(c.id)) { return self.response.usagePerCore[Int(c.id)] } - return 0 + return i < usagePerCore.count ? usagePerCore[i] : 0 } - let pCoresList: [Double] = cores.filter({ $0.type == .performance }).compactMap { (c: core_s) in + let pCoresList: [Double] = cores.filter({ $0.type == .performance }).enumerated().compactMap { (i, c) -> Double? in if self.response.usagePerCore.indices.contains(Int(c.id)) { return self.response.usagePerCore[Int(c.id)] } - return 0 + return i < usagePerCore.count ? usagePerCore[i] : 0 } self.response.usageECores = eCoresList.reduce(0, +)/Double(eCoresList.count)