diff --git a/Modules/Disk/readers.swift b/Modules/Disk/readers.swift index 3a632d58..da1e817e 100644 --- a/Modules/Disk/readers.swift +++ b/Modules/Disk/readers.swift @@ -286,9 +286,11 @@ internal class ActivityReader: Reader { } private func driveStats(_ idx: Int, _ d: drive) { - guard let props = getIOProperties(d.parent) else { - return - } + let service = IOServiceGetMatchingService(kIOMasterPortDefault, IOBSDNameMatching(kIOMasterPortDefault, 0, d.BSDName)) + if service == 0 { return } + IOObjectRelease(service) + + guard let props = getIOProperties(d.parent) else { return } if let statistics = props.object(forKey: "Statistics") as? NSDictionary { let readBytes = statistics.object(forKey: "Bytes (Read)") as? Int64 ?? 0 diff --git a/Modules/Disk/settings.swift b/Modules/Disk/settings.swift index 14df548b..78afae79 100644 --- a/Modules/Disk/settings.swift +++ b/Modules/Disk/settings.swift @@ -134,12 +134,11 @@ internal class Settings: NSStackView, Settings_v, NSTextFieldDelegate { } internal func setList(_ list: Disks) { - let disks = list.map{ $0.mediaName } DispatchQueue.main.async(execute: { + let disks = list.map{ $0.mediaName } if self.button?.itemTitles.count != disks.count { self.button?.removeAllItems() } - if disks != self.button?.itemTitles { self.button?.addItems(withTitles: disks) self.list = disks