Моя система отказывается закрывать/перезапускать с помощью класса NSAppleScript

Я использую CFPlugin для контекстного меню и наложения значков на 10.5 (так же, как scplugin). Для связи между моим приложением и поиском я использую distributed object. После установки моего плагина внутри папки Contextual menu items моя система отказывается перезапускать /shutdow/Logout. В мониторе активности я не могу выйти из поисковика, только силовое quit-woking для finder. На консоли я получаю 10.5.8

ERROR | -[ApplicationManager(AppleEventHandling) _tryQuitAllForRequestor:replyEvent:] | _tryQuitAllForRequestor - _vproc_set_global_on_demand returned error -1805620379  

Без связи между Finder и моим приложением, перезапуск системы /shutdow/Logout работают нормально.
На 10.5.4

loginwindow[41]: ERROR | WSActivateApp | SetFrontProcess({0, 7980956}) returned error -600. Unable to activate process.

loginwindow[41]: ERROR | -[ApplicationManager(AppleEventHandling) _tryQuitAllForRequestor:replyEvent:] | _tryQuitAllForRequestor - _vproc_set_global_on_demand returned error -1780878507

Кто-нибудь может помочь мне?

ИЗМЕНИТЬ

Моя проблема решена. Я использовал NSAppleScript для выполнения apple script. Теперь я использую NSTask, и моя перезагрузка системы /shutdow/Logout работают нормально. может ли кто-нибудь объяснить мне причину этого?

Ответы

Ответ 1

Моя проблема решена. Я использовал NSAppleScript для выполнения apple script. Теперь я использую NSTask, и моя перезагрузка системы /shutdow/Logout работают нормально

Ответ 2

NSAppleScript можно запускать только из основного потока, поэтому основной поток будет заблокирован во время его запуска.

Не слишком уверен, что является основной причиной сообщения, но я полагаю, что script не может быть найден или запущен должным образом, а затем основной поток заблокирован или тайм-аут, и вся ваша последовательность выключения застревает.

На противоположной стороне NSTask правильно многопоточен, поэтому последовательность не будет заблокирована, и ваш компьютер будет правильно выключен.

Вот несколько релевантных ссылок, собранных вокруг: