Skip to content

Commit 468b8fe

Browse files
committed
Fix error handling
1 parent 09b28c8 commit 468b8fe

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

Python/legacy_tracing.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -739,7 +739,6 @@ _PyEval_SetTraceAllThreads(PyInterpreterState *interp, Py_tracefunc func, PyObje
739739
}
740740

741741
PyObject *old_trace_objs = NULL;
742-
int err = 0;
743742
_PyEval_StopTheWorld(interp);
744743
HEAD_LOCK(&_PyRuntime);
745744
Py_ssize_t num_thread_states = 0;
@@ -758,14 +757,17 @@ _PyEval_SetTraceAllThreads(PyInterpreterState *interp, Py_tracefunc func, PyObje
758757
}
759758
if (interp->sys_tracing_threads) {
760759
_Py_FOR_EACH_TSTATE_UNLOCKED(interp, tstate) {
761-
err = maybe_set_opcode_trace(tstate);
760+
int err = maybe_set_opcode_trace(tstate);
762761
if (err != 0) {
763-
break;
762+
HEAD_UNLOCK(&_PyRuntime);
763+
_PyEval_StartTheWorld(interp);
764+
Py_XDECREF(old_trace_objs);
765+
return -1;
764766
}
765767
}
766768
}
767769
HEAD_UNLOCK(&_PyRuntime);
768-
err = set_monitoring_trace_events(interp);
770+
int err = set_monitoring_trace_events(interp);
769771
_PyEval_StartTheWorld(interp);
770772
Py_XDECREF(old_trace_objs); // needs to be decref'd outside of stop-the-world
771773
return err;

0 commit comments

Comments
 (0)