¿Se pueden eliminar los errores de ThreadSafe para ScriptingAdditions sin eliminar los archivos de adición?

1

Tengo los siguientes errores en el registro de mi sistema cuando se ejecuta, por ejemplo. Páginas:

Aug  4 19:06:50 Pages[9751]: Performance: Please update this scripting addition to supply a value for ThreadSafe for each event handler: "/Library/ScriptingAdditions/MySpeed.osax"
Aug  4 19:06:50 Pages[9751]: Performance: Please update this scripting addition to supply a value for ThreadSafe for each event handler: "/Library/ScriptingAdditions/SIMBL.osax"

¿Cuál es la causa de eso y cómo lo soluciono?

    
pregunta kenorb 04.08.2013 - 20:10

1 respuesta

1

Como solución alternativa, el controlador InjectEventHandler se puede eliminar o comentar desde Info.plist desde los archivos:

/Library/ScriptingAdditions/SIMBL.osax/Contents/Info.plist
/Library/ScriptingAdditions/MySpeed.osax/Contents/Info.plist

Fuente: enlace

En el ejemplo:

--- a/Info.plist
+++ b/Info.plist
@@ -37,8 +37,6 @@
                <key>Context</key>
                <string>Process</string>
            </dict>
-           <key>SIMeleop</key>
-           <string>InjectEventHandler</string>
        </dict>
    </dict>
 </dict>

O también puedes intentar establecer ThreadSafe en verdadero: Por ejemplo,

<key>OSAXHandlers</key>
<dict>
    <key>Events</key>
    <dict>
        <key>sysodlog</key>
        <dict>
            <key>Handler</key>
            <string>DisplayDialogEventHandler</string>
            <key>ThreadSafe</key>
            <true/>
            <key>Context</key>
            <string>Process</string>
        </dict> 
...
  

Claves del diccionario del manejador:

     

ThreadSafe - Un booleano; es el manejador   ¿a salvo de amenazas? (Sólo controladores de eventos).

     

ThreadSafe OSA y AppleScript en Mac OS X v10.6 son seguros para subprocesos. Si un   El script se ejecuta en un subproceso en segundo plano e invoca un controlador de eventos   que no es seguro para subprocesos, se llamará en el subproceso principal, que   es más lento que invocarlo directamente en el subproceso de llamada y puede   reducir la capacidad de respuesta de la aplicación a la entrada del usuario. Idealmente, todos los manejadores   debe ser seguro para subprocesos. Algunos inherentemente no pueden ser; por ejemplo, casi   todo lo que muestra la interfaz de usuario debe ejecutarse en el hilo principal. Usted está   se recomienda verificar que los manejadores de eventos sean seguros para subprocesos   o actualízalos para que sean seguros para subprocesos.

     

Si el valor de esta clave es verdadero, entonces el controlador se puede ejecutar en   un hilo no principal y puede ejecutarse simultáneamente desde múltiples   trapos. Si es falso, solo se ejecutará en el hilo principal. Esta   la clave es obligatoria para los manejadores de eventos y no debe estar presente durante   controladores de coerción, que deben ser seguros para subprocesos. Si una coercion   el manejador no puede ser seguro para ejecutarse en subprocesos en segundo plano, el manejador   debe hacer arreglos para ejecutar la coerción en el hilo principal, como usar   utilizando libdispatch y la cola de envío principal.

Leer más:

Problemas relacionados:

enlace enlace

Otro:

enlace enlace enlace enlace

    
respondido por el kenorb 04.08.2013 - 20:18

Lea otras preguntas en las etiquetas