[Python-Dev] Python threads end up blocking signals in subprocesses (original) (raw)

Jeff Epler jepler at unpythonic.net
Tue Dec 23 09:05:48 EST 2003


On Tue, Dec 23, 2003 at 10:01:58AM +0100, Martin v. Loewis wrote:

I would be concerned that we bypass magic that the system vendor put into system(), which is essential for proper operation. For example, on Linux, system() blocks SIGINT in the parent process while the child is running. Also, the shell executable that system() uses may not be /bin/sh.

This behavior (blocking SIGINT and SIGQUIT in the parent) is part of the specification of system(): The system() function shall ignore the SIGINT and SIGQUIT signals, and shall block the SIGCHLD signal, while waiting for the command to terminate. If this might cause the application to miss a signal that would have killed it, then the application should examine the return value from system() and take whatever action is appropriate to the application if the command terminated due to receipt of a signal.

Jeff



More information about the Python-Dev mailing list