summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-03-12 14:45:56 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-03-12 14:45:56 (GMT)
commit52f6dd7a3dd9d672a23d7f654a46f126cfc74968 (patch)
tree34985c0029101f0a3897d200bc8fdaec754d746a /Modules
parent2743139031017874fba4b8cfe8f6f44c52789bee (diff)
downloadcpython-52f6dd7a3dd9d672a23d7f654a46f126cfc74968.zip
cpython-52f6dd7a3dd9d672a23d7f654a46f126cfc74968.tar.gz
cpython-52f6dd7a3dd9d672a23d7f654a46f126cfc74968.tar.bz2
Merged revisions 78826 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. ........
Diffstat (limited to 'Modules')
-rw-r--r--Modules/main.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/Modules/main.c b/Modules/main.c
index b413561..7736d99 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -595,10 +595,16 @@ Py_Main(int argc, wchar_t **argv)
else
p_cfilename = "<decoding error>";
}
- sts = PyRun_AnyFileExFlags(
- fp,
- p_cfilename,
- filename != NULL, &cf) != 0;
+ /* call pending calls like signal handlers (SIGINT) */
+ if (Py_MakePendingCalls() == -1) {
+ PyErr_Print();
+ sts = 1;
+ } else {
+ sts = PyRun_AnyFileExFlags(
+ fp,
+ p_cfilename,
+ filename != NULL, &cf) != 0;
+ }
Py_XDECREF(filenameObj);
}