Revert gh-127266: avoid data races when updating type slots (gh-131174) (gh-133129)

This is triggering deadlocks in test_opcache.  See GH-133130 for stack trace.
This commit is contained in:
Neil Schemenauer 2025-04-28 23:38:29 -07:00 committed by GitHub
parent 219b1f9d1d
commit eecafc3380
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 112 additions and 233 deletions

View file

@ -138,19 +138,6 @@
#endif
static void
check_invalid_reentrancy(void)
{
#if defined(Py_DEBUG) && defined(Py_GIL_DISABLED)
// In the free-threaded build, the interpreter must not be re-entered if
// the world-is-stopped. If so, that's a bug somewhere (quite likely in
// the painfully complex typeobject code).
PyInterpreterState *interp = _PyInterpreterState_GET();
assert(!interp->stoptheworld.world_stopped);
#endif
}
#ifdef Py_DEBUG
static void
dump_item(_PyStackRef item)
@ -1008,7 +995,6 @@ PyObject* _Py_HOT_FUNCTION DONT_SLP_VECTORIZE
_PyEval_EvalFrameDefault(PyThreadState *tstate, _PyInterpreterFrame *frame, int throwflag)
{
_Py_EnsureTstateNotNULL(tstate);
check_invalid_reentrancy();
CALL_STAT_INC(pyeval_calls);
#if USE_COMPUTED_GOTOS && !Py_TAIL_CALL_INTERP