1
0
mirror of https://github.com/Toxblh/MTMR.git synced 2026-01-10 17:08:39 +00:00

experimental: run applescript on separate serial queue

This commit is contained in:
Serg 2018-05-12 11:11:53 +07:00
parent b73f8865a9
commit e9c69f6461
2 changed files with 15 additions and 6 deletions

View File

@ -15,7 +15,7 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem {
}
self.script = script
button.bezelColor = .clear
DispatchQueue.main.async {
DispatchQueue.appleScriptQueue.async {
var error: NSDictionary?
guard script.compileAndReturnError(&error) else {
#if DEBUG
@ -42,8 +42,11 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem {
DispatchQueue.main.async {
self.title = scriptResult
self.forceHideConstraint.isActive = scriptResult == ""
#if DEBUG
print("did set new script result title \(scriptResult)")
#endif
}
DispatchQueue.main.asyncAfter(deadline: .now() + self.interval) { [weak self] in
DispatchQueue.appleScriptQueue.asyncAfter(deadline: .now() + self.interval) { [weak self] in
self?.refreshAndSchedule()
}
}
@ -66,3 +69,7 @@ extension SourceProtocol {
return NSAppleScript(source: source)
}
}
extension DispatchQueue {
static let appleScriptQueue = DispatchQueue(label: "mtmr.applescript")
}

View File

@ -262,10 +262,12 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
return {}
}
return {
var error: NSDictionary?
appleScript.executeAndReturnError(&error)
if let error = error {
print("error \(error) when handling \(item) ")
DispatchQueue.appleScriptQueue.async {
var error: NSDictionary?
appleScript.executeAndReturnError(&error)
if let error = error {
print("error \(error) when handling \(item) ")
}
}
}
case .shellScript(executable: let executable, parameters: let parameters):