From: Victor Stinner Date: Tue, 30 Sep 2014 11:55:30 +0000 (+0200) Subject: (Merge 3.4) faulthandler: test_gil_released() now uses _sigsegv() instead of X-Git-Tag: v3.5.0a1~816 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6b8e0ed562e867ebffed0209266e21d9f0a4bb77;p=python (Merge 3.4) faulthandler: test_gil_released() now uses _sigsegv() instead of _read_null(), because _read_null() cannot be used on AIX. On AIX, reading from NULL is allowed: the first page of memory is a mapped read-only on AIX. _read_null() and _sigabrt() don't accept parameters. --- 6b8e0ed562e867ebffed0209266e21d9f0a4bb77 diff --cc Modules/faulthandler.c index ee00719262,c17ffd8aca..568724b6f1 --- a/Modules/faulthandler.c +++ b/Modules/faulthandler.c @@@ -843,26 -809,16 +843,18 @@@ faulthandler_read_null(PyObject *self, { volatile int *x; volatile int y; - int release_gil = 0; - if (!PyArg_ParseTuple(args, "|i:_read_null", &release_gil)) - return NULL; + faulthandler_suppress_crash_report(); x = NULL; - if (release_gil) { - Py_BEGIN_ALLOW_THREADS - y = *x; - Py_END_ALLOW_THREADS - } else - y = *x; + y = *x; return PyLong_FromLong(y); } - static PyObject * - faulthandler_sigsegv(PyObject *self, PyObject *args) + static void + faulthandler_raise_sigsegv(void) { + faulthandler_suppress_crash_report(); #if defined(MS_WINDOWS) /* For SIGSEGV, faulthandler_fatal_error() restores the previous signal handler and then gives back the execution flow to the program (without