summaryrefslogtreecommitdiff
path: root/Cython/Utility/Coroutine.c
diff options
context:
space:
mode:
Diffstat (limited to 'Cython/Utility/Coroutine.c')
-rw-r--r--Cython/Utility/Coroutine.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Cython/Utility/Coroutine.c b/Cython/Utility/Coroutine.c
index 1ad27df26..a02578acd 100644
--- a/Cython/Utility/Coroutine.c
+++ b/Cython/Utility/Coroutine.c
@@ -185,7 +185,11 @@ static PyObject *__Pyx__Coroutine_GetAwaitableIter(PyObject *obj) {
} else
#endif
#if CYTHON_COMPILING_IN_CPYTHON && defined(CO_ITERABLE_COROUTINE)
+#if PY_VERSION_HEX >= 0x030C00A6
+ if (PyGen_CheckExact(obj) && (PyGen_GetCode(obj)->co_flags & CO_ITERABLE_COROUTINE)) {
+#else
if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) {
+#endif
// Python generator marked with "@types.coroutine" decorator
return __Pyx_NewRef(obj);
} else