Andrew Yarmola - 2010-08-13

Hi,

This problem is the result of the new lib_dispatch in 10.6 (Grand Central Dispatch). There is a bug in lib_dispatch where a processes created with execve() on a global dispatch queue (the way iHook tuns a script) does not receive some signals. The cancel button in iHook sends the script process a SIGTERM, which that process never receives.

A work around we came up with involves moving away from using NSOperationQueue (which uses global dispatch queues in 10.6) and using a POSIX thread. This edit is just a few lines in the code. A patch file is posted in the "Does iHook work in Snow Leopard" page in the Help topic (https://sourceforge.net/projects/ihook/forums/forum/829203/topic/3436157).

The Best,

Andrew Yarmola
Stanford University
Academic Computing Services