summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2011-05-15 08:42:56 (GMT)
committerGeorg Brandl <georg@python.org>2011-05-15 08:42:56 (GMT)
commit2bff9fcec23798dd192932842bae9855ed47a862 (patch)
tree075db2aae158618d22b8e9627b560a38a65f8ef8
parent758b85e9d4cf714a92b6d4032c3cf00308539810 (diff)
parent5ebfe6d9a96beaa190e803259ffd05abe8786e14 (diff)
downloadcpython-2bff9fcec23798dd192932842bae9855ed47a862.zip
cpython-2bff9fcec23798dd192932842bae9855ed47a862.tar.gz
cpython-2bff9fcec23798dd192932842bae9855ed47a862.tar.bz2
Branch merge.
-rw-r--r--Doc/c-api/veryhigh.rst11
-rw-r--r--Misc/NEWS3
-rw-r--r--Modules/signalmodule.c6
-rw-r--r--Python/pythonrun.c2
4 files changed, 13 insertions, 9 deletions
diff --git a/Doc/c-api/veryhigh.rst b/Doc/c-api/veryhigh.rst
index 26e0716..8bece6d 100644
--- a/Doc/c-api/veryhigh.rst
+++ b/Doc/c-api/veryhigh.rst
@@ -34,11 +34,12 @@ the same library that the Python runtime is using.
according to the user's locale). It is important to note that the
argument list may be modified (but the contents of the strings
pointed to by the argument list are not). The return value will be
- the integer passed to the :func:`sys.exit` function, ``1`` if the
- interpreter exits due to an exception, or ``2`` if the parameter
- list does not represent a valid Python command line.
+ ```0``` if the interpreter exits normally (ie, without an
+ exception), ``1`` if the interpreter exits due to an exception, or
+ ``2`` if the parameter list does not represent a valid Python
+ command line.
- Note that if an otherwise unhandled :exc:`SystemError` is raised, this
+ Note that if an otherwise unhandled :exc:`SystemExit` is raised, this
function will not return ``1``, but exit the process, as long as
``Py_InspectFlag`` is not set.
@@ -85,7 +86,7 @@ the same library that the Python runtime is using.
there was an error, there is no way to get the exception information. For the
meaning of *flags*, see below.
- Note that if an otherwise unhandled :exc:`SystemError` is raised, this
+ Note that if an otherwise unhandled :exc:`SystemExit` is raised, this
function will not return ``-1``, but exit the process, as long as
``Py_InspectFlag`` is not set.
diff --git a/Misc/NEWS b/Misc/NEWS
index fc4a2c8..288dc15 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ What's New in Python 3.2.1 release candidate 1?
Core and Builtins
-----------------
+- Issue #12060: Use sig_atomic_t type and volatile keyword in the signal
+ module. Patch written by Charles-François Natali.
+
- Issue #12044: Fixed subprocess.Popen when used as a context manager to
wait for the process to end when exiting the context to avoid unintentionally
leaving zombie processes around.
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 00a83b4..87c1c9a 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -80,12 +80,12 @@ static long main_thread;
static pid_t main_pid;
#endif
-static struct {
- int tripped;
+static volatile struct {
+ sig_atomic_t tripped;
PyObject *func;
} Handlers[NSIG];
-static sig_atomic_t wakeup_fd = -1;
+static volatile sig_atomic_t wakeup_fd = -1;
/* Speed up sigcheck() when none tripped */
static volatile sig_atomic_t is_tripped = 0;
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 1e2dd58..084db12 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -80,7 +80,7 @@ int Py_DebugFlag; /* Needed by parser.c */
int Py_VerboseFlag; /* Needed by import.c */
int Py_QuietFlag; /* Needed by sysmodule.c */
int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */
-int Py_InspectFlag; /* Needed to determine whether to exit at SystemError */
+int Py_InspectFlag; /* Needed to determine whether to exit at SystemExit */
int Py_NoSiteFlag; /* Suppress 'import site' */
int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */
int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */