I just tried two hours to force python to accept other signals -- no way. If you start mplayer, you can't kill it from a shell with -15, only -9 works. If you move the runapp from the runtime into the runtime directory, it works. I also moved the signal part of runapp into a python so file, but it doesn't work that way.
Conclusion: I don't like it, but it looks like we need the runapp.
From what I've seen googling around, python blocks signals for threads, and if these fork, the children end up with blocked signals as well. This is supposed to protcet against broken threading implementations.
One thing I've seen mentioned is that forking from the main thread will not results in children with blocked signals. If this is true (and I haven't tested it), then we can work around the issue by using the main thread as a fork proxy: Have all threads talk to the main thread when they need to fork something, and have the main thread do the fork and return child information.
Lars -- Lars Eggert <[EMAIL PROTECTED]> USC Information Sciences Institute
smime.p7s
Description: S/MIME Cryptographic Signature
