summaryrefslogtreecommitdiffstats
path: root/Modules/main.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-03-21 14:02:32 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-03-21 14:02:32 (GMT)
commitea1642910eafe86b6749af852ce5b37525b742c8 (patch)
tree6e4864db8270944ed8e1ff7c9ca99ec41dd3aa6c /Modules/main.c
parent57d43b29f39d8ac59d0129355f6d3663a35e254a (diff)
downloadcpython-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.c14
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;
+ }
}
}