diff options
author | Victor Stinner <vstinner@python.org> | 2020-03-12 22:18:39 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-12 22:18:39 (GMT) |
commit | 0b72b23fb0c130279f65f3bcd23521acf4a98c88 (patch) | |
tree | 2e2bbdef31294861783eeea4da94a02b8715f4c9 /Doc/c-api/init.rst | |
parent | c846ef004d79ee8e9645d3e5e8b3b0cb97b5013f (diff) | |
download | cpython-0b72b23fb0c130279f65f3bcd23521acf4a98c88.zip cpython-0b72b23fb0c130279f65f3bcd23521acf4a98c88.tar.gz cpython-0b72b23fb0c130279f65f3bcd23521acf4a98c88.tar.bz2 |
bpo-38500: Add _PyInterpreterState_SetEvalFrameFunc() (GH-17340)
PyInterpreterState.eval_frame function now requires a tstate (Python
thread state) parameter.
Add private functions to the C API to get and set the frame
evaluation function:
* Add tstate parameter to _PyFrameEvalFunction function type.
* Add _PyInterpreterState_GetEvalFrameFunc() and
_PyInterpreterState_SetEvalFrameFunc() functions.
* Add tstate parameter to _PyEval_EvalFrameDefault().
Diffstat (limited to 'Doc/c-api/init.rst')
-rw-r--r-- | Doc/c-api/init.rst | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst index c34b117..badea5a 100644 --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -1091,6 +1091,32 @@ All of the following functions must be called after :c:func:`Py_Initialize`. .. versionadded:: 3.8 +.. c:type:: PyObject* (*_PyFrameEvalFunction)(PyThreadState *tstate, PyFrameObject *frame, int throwflag) + + Type of a frame evaluation function. + + The *throwflag* parameter is used by the ``throw()`` method of generators: + if non-zero, handle the current exception. + + .. versionchanged:: 3.9 + The function now takes a *tstate* parameter. + +.. c:function:: _PyFrameEvalFunction _PyInterpreterState_GetEvalFrameFunc(PyInterpreterState *interp) + + Get the frame evaluation function. + + See the :pep:`523` "Adding a frame evaluation API to CPython". + + .. versionadded:: 3.9 + +.. c:function:: void _PyInterpreterState_SetEvalFrameFunc(PyInterpreterState *interp, _PyFrameEvalFunction eval_frame); + + Set the frame evaluation function. + + See the :pep:`523` "Adding a frame evaluation API to CPython". + + .. versionadded:: 3.9 + .. c:function:: PyObject* PyThreadState_GetDict() |