From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Thu, 13 Jun 2024 10:23:19 +0000 (+0200) Subject: [3.13] gh-117657: Fix some simple races in instrumentation.c (GH-120118) (#120444) X-Git-Tag: v3.13.0b3~115 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=17188270b6e6671ab721235745ad9f3ab0a7a8d8;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-117657: Fix some simple races in instrumentation.c (GH-120118) (#120444) gh-117657: Fix some simple races in instrumentation.c (GH-120118) * stop the world when setting local events (cherry picked from commit b1b61dc4cee43920ef2b08d5ac94ddf08119c507) Co-authored-by: Ken Jin --- diff --git a/Python/instrumentation.c b/Python/instrumentation.c index a5211ee5428c..ae790a1441b9 100644 --- a/Python/instrumentation.c +++ b/Python/instrumentation.c @@ -1977,7 +1977,7 @@ _PyMonitoring_SetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEvent } int res; - LOCK_CODE(code); + _PyEval_StopTheWorld(interp); if (allocate_instrumentation_data(code)) { res = -1; goto done; @@ -1994,7 +1994,7 @@ _PyMonitoring_SetLocalEvents(PyCodeObject *code, int tool_id, _PyMonitoringEvent res = force_instrument_lock_held(code, interp); done: - UNLOCK_CODE(); + _PyEval_StartTheWorld(interp); return res; }