[Python-Dev] Catch SIGINT at Python startup (original) (raw)

Victor Stinner victor.stinner at haypocalc.com
Mon Mar 8 14:12:51 CET 2010


Hi,

I wrote patches for the issue #3137 and I would like your opinion about my solution (not directly about the patches): I propose to consider a SIGINT during startup as a fatal error. If you press CTRL+c while Python is starting, Python displays an error and exit with the code 1.

Currently, if you press CTRL+c while Python is starting: the SIGINT signal will be ignored somewhere between Python initialization and the first Python instruction. First problem is that if site import is interrupted, Python is not completly initialized (if a SIGINT is sent just after the call to initsigs(), initsite() is completly skipped).

Example:

$ python ^C Traceback (most recent call last):
File "/home/SHARE/SVN/python-trunk/Lib/site.py", line 62, in
import os
File "/home/SHARE/SVN/python-trunk/Lib/os.py", line 44, in
from posix import *
KeyboardInterrupt
$ echo $? 1

It's not easy to reproduce this issue because Python initialization is really fast (yeah really! or at least to fast for me ;-)). I'm using "valgrind --log- file=/dev/null ./python -v" to simulate a very slow computer :-)

-- Victor Stinner http://www.haypocalc.com/



More information about the Python-Dev mailing list