@@ -1190,9 +1190,10 @@ call_instrumentation_vector(
11901190break ;
11911191 }
11921192else {
1193- LOCK_CODE (code );
1193+ PyInterpreterState * interp = tstate -> interp ;
1194+ _PyEval_StopTheWorld (interp );
11941195remove_tools (code ,offset ,event ,1 <<tool );
1195- UNLOCK_CODE ( );
1196+ _PyEval_StartTheWorld ( interp );
11961197 }
11971198 }
11981199 }
@@ -1381,9 +1382,10 @@ _Py_call_instrumentation_line(PyThreadState *tstate, _PyInterpreterFrame* frame,
13811382 }
13821383else {
13831384/* DISABLE */
1384- LOCK_CODE (code );
1385+ PyInterpreterState * interp = tstate -> interp ;
1386+ _PyEval_StopTheWorld (interp );
13851387remove_line_tools (code ,i ,1 <<tool );
1386- UNLOCK_CODE ( );
1388+ _PyEval_StartTheWorld ( interp );
13871389 }
13881390 }while (tools );
13891391Py_DECREF (line_obj );
@@ -1438,9 +1440,10 @@ _Py_call_instrumentation_instruction(PyThreadState *tstate, _PyInterpreterFrame*
14381440 }
14391441else {
14401442/* DISABLE */
1441- LOCK_CODE (code );
1443+ PyInterpreterState * interp = tstate -> interp ;
1444+ _PyEval_StopTheWorld (interp );
14421445remove_per_instruction_tools (code ,offset ,1 <<tool );
1443- UNLOCK_CODE ( );
1446+ _PyEval_StartTheWorld ( interp );
14441447 }
14451448 }
14461449Py_DECREF (offset_obj );
@@ -2995,9 +2998,10 @@ branch_handler_vectorcall(
29952998// Orphaned NOT_TAKEN -- Jump removed by the compiler
29962999return res ;
29973000 }
2998- LOCK_CODE (code );
3001+ PyInterpreterState * interp = _PyInterpreterState_GET ();
3002+ _PyEval_StopTheWorld (interp );
29993003remove_tools (code ,offset ,other_event ,1 <<self -> tool_id );
3000- UNLOCK_CODE ( );
3004+ _PyEval_StartTheWorld ( interp );
30013005 }
30023006return res ;
30033007}