summaryrefslogtreecommitdiff
path: root/Python/sysmodule.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2016-01-20 11:12:38 +0100
committerVictor Stinner <victor.stinner@gmail.com>2016-01-20 11:12:38 +0100
commitb3b0102d41c7b1a25493b51d5d83d080fb32735b (patch)
treef33e879b08501a4aaafd4a80185b9ac18b91a7ac /Python/sysmodule.c
parent483293a1f99146de7cef730f90ce824c67dde20d (diff)
downloadcpython-b3b0102d41c7b1a25493b51d5d83d080fb32735b.tar.gz
Add _PyThreadState_UncheckedGet()
Issue #26154: Add a new private _PyThreadState_UncheckedGet() function which gets the current thread state, but don't call Py_FatalError() if it is NULL. Python 3.5.1 removed the _PyThreadState_Current symbol from the Python C API to no more expose complex and private atomic types. Atomic types depends on the compiler or can even depend on compiler options. The new function _PyThreadState_UncheckedGet() allows to get the variable value without having to care of the exact implementation of atomic types. Changes: * Replace direct usage of the _PyThreadState_Current variable with a call to _PyThreadState_UncheckedGet(). * In pystate.c, replace direct usage of the _PyThreadState_Current variable with the PyThreadState_GET() macro for readability. * Document also PyThreadState_Get() in pystate.h
Diffstat (limited to 'Python/sysmodule.c')
-rw-r--r--Python/sysmodule.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 334f5d0c8e..8d7e05a465 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -1397,7 +1397,7 @@ error:
Py_XDECREF(name);
Py_XDECREF(value);
/* No return value, therefore clear error state if possible */
- if (_Py_atomic_load_relaxed(&_PyThreadState_Current))
+ if (_PyThreadState_UncheckedGet())
PyErr_Clear();
}