fix: battery module freeze when disabling (#336)

This commit is contained in:
Serhiy Mytrovtsiy
2021-02-05 18:59:57 +01:00
parent fd3150e1b2
commit 4dd4af1a4f
2 changed files with 14 additions and 6 deletions

View File

@@ -202,7 +202,7 @@ open class Module: Module_p {
self.enabled = false
self.store.pointee.set(key: "\(self.config.name)_state", value: false)
self.readers.forEach{ $0.pause() }
self.readers.forEach{ $0.stop() }
self.menuBarItem.isVisible = false
self.popup?.setIsVisible(false)
os_log(.debug, log: log, "Module disabled")

View File

@@ -209,18 +209,26 @@ public class ProcessReader: Reader<[TopProcess]> {
return
}
if self.task.isRunning && self.paused {
if !self.task.isRunning {
do {
try self.task.run()
} catch let error {
os_log(.error, log: log, "run Battery process reader %s", "\(error)")
}
} else if self.paused {
self.paused = !self.task.resume()
} else {
self.task.launch()
}
}
public override func pause() {
self.paused = self.task.suspend()
if self.task.isRunning && !self.paused {
self.paused = self.task.suspend()
}
}
public override func stop() {
self.task.interrupt()
if self.task.isRunning && !self.paused {
self.paused = self.task.suspend()
}
}
}