This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients Mark.Shannon, eric.snow, fabioz, vstinner
Date 2020-06-02.02:04:06
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1591063446.86.0.411824669066.issue39947@roundup.psfhosted.org>
In-reply-to
Content
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.
History
Date User Action Args
2020-06-02 02:04:06vstinnersetrecipients: + vstinner, fabioz, Mark.Shannon, eric.snow
2020-06-02 02:04:06vstinnersetmessageid: <1591063446.86.0.411824669066.issue39947@roundup.psfhosted.org>
2020-06-02 02:04:06vstinnerlinkissue39947 messages
2020-06-02 02:04:06vstinnercreate