[Python-Dev] Python threads end up blocking signals
in subprocesses
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