Message370589
Cython still access multiple PyThreadState members which have no getter or setter yet. __Pyx_PyErr_ExceptionMatchesInState(): PyObject *exc_type = tstate->curexc_type; ... => internal _PyErr_Occurred(tstate) could solve this issue: move it the public/private API? Or expose internal _PyErr_ExceptionMatches(tstate, exc)? __Pyx_ErrRestoreInState() is a reimplementation of internal _PyErr_Restore(): get/set curexc_type, curexc_value and curexc_traceback members. __Pyx_PyFunction_FastCallNoKw: static PyObject* __Pyx_PyFunction_FastCallNoKw(...) { ... ++tstate->recursion_depth; Py_DECREF(f); --tstate->recursion_depth; return result; } Why not calling Py_EnterRecursiveCall/Py_LeaveRecursiveCall? There are likely others. | |
| Date | User | Action | Args | | 2020-06-02 02:04:06 | vstinner | set | recipients: + vstinner, fabioz, Mark.Shannon, eric.snow | | 2020-06-02 02:04:06 | vstinner | set | messageid: <1591063446.86.0.411824669066.issue39947@roundup.psfhosted.org> | | 2020-06-02 02:04:06 | vstinner | link | issue39947 messages | | 2020-06-02 02:04:06 | vstinner | create | | |