diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-21 14:02:32 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-21 14:02:32 (GMT) |
commit | ea1642910eafe86b6749af852ce5b37525b742c8 (patch) | |
tree | 6e4864db8270944ed8e1ff7c9ca99ec41dd3aa6c /Modules/main.c | |
parent | 57d43b29f39d8ac59d0129355f6d3663a35e254a (diff) | |
download | cpython-ea1642910eafe86b6749af852ce5b37525b742c8.zip cpython-ea1642910eafe86b6749af852ce5b37525b742c8.tar.gz cpython-ea1642910eafe86b6749af852ce5b37525b742c8.tar.bz2 |
Partial backport of r78826: leave import site error handler unchanged (print
the error and continue).
Merged revisions 78826-78827 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78826 | victor.stinner | 2010-03-10 23:30:19 +0100 (mer., 10 mars 2010) | 5 lines
Issue #3137: Don't ignore errors at startup, especially a keyboard interrupt
(SIGINT). If an error occurs while importing the site module, the error is
printed and Python exits. Initialize the GIL before importing the site
module.
........
r78827 | victor.stinner | 2010-03-10 23:45:04 +0100 (mer., 10 mars 2010) | 4 lines
ooops, fix error message in execusercustomize()
Copy/paste failure :-)
........
Diffstat (limited to 'Modules/main.c')
-rw-r--r-- | Modules/main.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Modules/main.c b/Modules/main.c index 2d2bbf4..de0c851 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -569,10 +569,16 @@ Py_Main(int argc, char **argv) } if (sts==-1) { - sts = PyRun_AnyFileExFlags( - fp, - filename == NULL ? "<stdin>" : filename, - filename != NULL, &cf) != 0; + /* call pending calls like signal handlers (SIGINT) */ + if (Py_MakePendingCalls() == -1) { + PyErr_Print(); + sts = 1; + } else { + sts = PyRun_AnyFileExFlags( + fp, + filename == NULL ? "<stdin>" : filename, + filename != NULL, &cf) != 0; + } } } |