mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
gh-125221: Fix free-threading data race in object.__reduce_ex__
(#125267)
This commit is contained in:
parent
c1913effee
commit
b12e99261e
3 changed files with 15 additions and 15 deletions
|
@ -2372,6 +2372,14 @@ _PyTypes_InitTypes(PyInterpreterState *interp)
|
|||
}
|
||||
}
|
||||
|
||||
// Cache __reduce__ from PyBaseObject_Type object
|
||||
PyObject *baseobj_dict = _PyType_GetDict(&PyBaseObject_Type);
|
||||
PyObject *baseobj_reduce = PyDict_GetItemWithError(baseobj_dict, &_Py_ID(__reduce__));
|
||||
if (baseobj_reduce == NULL && PyErr_Occurred()) {
|
||||
return _PyStatus_ERR("Can't get __reduce__ from base object");
|
||||
}
|
||||
_Py_INTERP_CACHED_OBJECT(interp, objreduce) = baseobj_reduce;
|
||||
|
||||
// Must be after static types are initialized
|
||||
if (_Py_initialize_generic(interp) < 0) {
|
||||
return _PyStatus_ERR("Can't initialize generic types");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue