mirror of https://github.com/python/cpython
GH-95045: gc untrack _lsprof.Profiler before deallocating it (GH-95315)
Automerge-Triggered-By: GH:pablogsal
This commit is contained in:
parent
78eb3f79ea
commit
deacf391d7
|
@ -0,0 +1 @@
|
||||||
|
Fix GC crash when deallocating ``_lsprof.Profiler`` by untracking it before calling any callbacks. Patch by Kumar Aditya.
|
|
@ -747,6 +747,7 @@ profiler_traverse(ProfilerObject *op, visitproc visit, void *arg)
|
||||||
static void
|
static void
|
||||||
profiler_dealloc(ProfilerObject *op)
|
profiler_dealloc(ProfilerObject *op)
|
||||||
{
|
{
|
||||||
|
PyObject_GC_UnTrack(op);
|
||||||
if (op->flags & POF_ENABLED) {
|
if (op->flags & POF_ENABLED) {
|
||||||
PyThreadState *tstate = _PyThreadState_GET();
|
PyThreadState *tstate = _PyThreadState_GET();
|
||||||
if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
|
if (_PyEval_SetProfile(tstate, NULL, NULL) < 0) {
|
||||||
|
|
Loading…
Reference in New Issue