mirror of
https://github.com/python/cpython.git
synced 2025-10-06 23:21:06 +00:00
GH-104584: Plugin optimizer API (GH-105100)
This commit is contained in:
parent
601ae09f0c
commit
4bfa01b9d9
31 changed files with 950 additions and 501 deletions
|
@ -695,6 +695,9 @@ init_interpreter(PyInterpreterState *interp,
|
|||
}
|
||||
interp->sys_profile_initialized = false;
|
||||
interp->sys_trace_initialized = false;
|
||||
interp->optimizer = &_PyOptimizer_Default;
|
||||
interp->optimizer_backedge_threshold = _PyOptimizer_Default.backedge_threshold;
|
||||
interp->optimizer_resume_threshold = _PyOptimizer_Default.backedge_threshold;
|
||||
if (interp != &runtime->_main_interpreter) {
|
||||
/* Fix the self-referential, statically initialized fields. */
|
||||
interp->dtoa = (struct _dtoa_state)_dtoa_state_INIT(interp);
|
||||
|
@ -829,6 +832,11 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
|
|||
tstate->_status.cleared = 0;
|
||||
}
|
||||
|
||||
Py_CLEAR(interp->optimizer);
|
||||
interp->optimizer = &_PyOptimizer_Default;
|
||||
interp->optimizer_backedge_threshold = _PyOptimizer_Default.backedge_threshold;
|
||||
interp->optimizer_resume_threshold = _PyOptimizer_Default.backedge_threshold;
|
||||
|
||||
/* It is possible that any of the objects below have a finalizer
|
||||
that runs Python code or otherwise relies on a thread state
|
||||
or even the interpreter state. For now we trust that isn't
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue