summaryrefslogtreecommitdiffstats
path: root/Modules/_asynciomodule.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2021-10-13 12:09:13 (GMT)
committerGitHub <noreply@github.com>2021-10-13 12:09:13 (GMT)
commit7cdc2a0f4b785327ad9d55312409a06e554df3d5 (patch)
tree71a2b8fdc68c9fbebfc79e0a3dffafbcad72dd4e /Modules/_asynciomodule.c
parent773330773968f211c77abc7b5b525faa7b3c35a2 (diff)
downloadcpython-7cdc2a0f4b785327ad9d55312409a06e554df3d5.zip
cpython-7cdc2a0f4b785327ad9d55312409a06e554df3d5.tar.gz
cpython-7cdc2a0f4b785327ad9d55312409a06e554df3d5.tar.bz2
pycore_pystate.h no longer redefines PyThreadState_GET() (GH-28921)
Redefining the PyThreadState_GET() macro in pycore_pystate.h is useless since it doesn't affect files not including it. Either use _PyThreadState_GET() directly, or don't use pycore_pystate.h internal C API. For example, the _testcapi extension don't use the internal C API, but use the public PyThreadState_Get() function instead. Replace PyThreadState_Get() with _PyThreadState_GET(). The _PyThreadState_GET() macro is more efficient than PyThreadState_Get() and PyThreadState_GET() function calls which call fail with a fatal Python error. posixmodule.c and _ctypes extension now include <windows.h> before pycore header files (like pycore_call.h). _PyTraceback_Add() now uses _PyErr_Fetch()/_PyErr_Restore() instead of PyErr_Fetch()/PyErr_Restore(). The _decimal and _xxsubinterpreters extensions are now built with the Py_BUILD_CORE_MODULE macro defined to get access to the internal C API.
Diffstat (limited to 'Modules/_asynciomodule.c')
-rw-r--r--Modules/_asynciomodule.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index 56079b0..adc5ff9 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -1,5 +1,6 @@
#include "Python.h"
#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
+#include "pycore_pystate.h" // _PyThreadState_GET()
#include <stddef.h> // offsetof()
@@ -225,7 +226,7 @@ get_running_loop(PyObject **loop)
{
PyObject *rl;
- PyThreadState *ts = PyThreadState_Get();
+ PyThreadState *ts = _PyThreadState_GET();
uint64_t ts_id = PyThreadState_GetID(ts);
if (ts_id == cached_running_holder_tsid && cached_running_holder != NULL) {
// Fast path, check the cache.
@@ -287,7 +288,7 @@ set_running_loop(PyObject *loop)
{
PyObject *ts_dict = NULL;
- PyThreadState *tstate = PyThreadState_Get();
+ PyThreadState *tstate = _PyThreadState_GET();
if (tstate != NULL) {
ts_dict = _PyThreadState_GetDict(tstate); // borrowed
}