diff options
author | Victor Stinner <vstinner@python.org> | 2020-04-08 15:54:59 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-08 15:54:59 (GMT) |
commit | dda5d6e071c6a9d65993d45b90232565cfad2cde (patch) | |
tree | e5c629500c9557ecad3113054a019fc4af19f93a /Include | |
parent | ac2cfe6631b77a2005d8f16f034dbb6154f04ab2 (diff) | |
download | cpython-dda5d6e071c6a9d65993d45b90232565cfad2cde.zip cpython-dda5d6e071c6a9d65993d45b90232565cfad2cde.tar.gz cpython-dda5d6e071c6a9d65993d45b90232565cfad2cde.tar.bz2 |
bpo-40226: PyInterpreterState_Delete() deletes pending calls (GH-19436)
PyInterpreterState_New() is now responsible to create pending calls,
PyInterpreterState_Delete() now deletes pending calls.
* Rename _PyEval_InitThreads() to _PyEval_InitGIL() and rename
_PyEval_InitGIL() to _PyEval_FiniGIL().
* _PyEval_InitState() and PyEval_FiniState() now create and delete
pending calls. _PyEval_InitState() now returns -1 on memory
allocation failure.
* Add init_interp_create_gil() helper function: code shared by
Py_NewInterpreter() and Py_InitializeFromConfig().
* init_interp_create_gil() now also calls _PyEval_FiniGIL(),
_PyEval_InitGIL() and _PyGILState_Init() in subinterpreters, but
these functions now do nothing when called from a subinterpreter.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/internal/pycore_ceval.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h index ccfb9ab..1f96fc6 100644 --- a/Include/internal/pycore_ceval.h +++ b/Include/internal/pycore_ceval.h @@ -17,8 +17,8 @@ struct _frame; extern void _Py_FinishPendingCalls(PyThreadState *tstate); extern void _PyEval_InitRuntimeState(struct _ceval_runtime_state *); -extern void _PyEval_InitState(struct _ceval_state *); -extern void _PyEval_FiniThreads(PyThreadState *tstate); +extern int _PyEval_InitState(struct _ceval_state *ceval); +extern void _PyEval_FiniState(struct _ceval_state *ceval); PyAPI_FUNC(void) _PyEval_SignalReceived(PyThreadState *tstate); PyAPI_FUNC(int) _PyEval_AddPendingCall( PyThreadState *tstate, @@ -51,7 +51,8 @@ extern PyObject *_PyEval_EvalCode( PyObject *name, PyObject *qualname); extern int _PyEval_ThreadsInitialized(_PyRuntimeState *runtime); -extern PyStatus _PyEval_InitThreads(PyThreadState *tstate); +extern PyStatus _PyEval_InitGIL(PyThreadState *tstate); +extern void _PyEval_FiniGIL(PyThreadState *tstate); extern void _PyEval_ReleaseLock(PyThreadState *tstate); |