1
0
mirror of https://github.com/Toxblh/MTMR.git synced 2026-01-11 09:28:38 +00:00

Merge pull request #75 from ReDetection/experimental-private-queue

experimental: run applescript on separate serial queue
This commit is contained in:
Anton Palgunov 2018-05-13 19:35:28 +01:00 committed by GitHub
commit fd537bcdfe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 6 deletions

View File

@ -15,7 +15,7 @@ class AppleScriptTouchBarItem: CustomButtonTouchBarItem {
}
self.script = script
self.isBordered = false
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

@ -257,12 +257,14 @@ class TouchBarController: NSObject, NSTouchBarDelegate {
return {}
}
return {
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):
return {
let task = Process()