Bug report
Bug description:
Some areas of typeobject are still not thread safe after fixing mro. Those at least include:
tp_flags - most of these that change at runtime are probably protected by locks after MRO (e.g. Py_TPFLAGS_VALID_VERSION_TAG and various flags set while readying). But at least some get modified outside of the lock still (e.g. Py_TPFLAGS_IS_ABSTRACT, Py_TPFLAGS_SEQUENCE and Py_TPFLAGS_MAPPING via the abc module). These should maybe all be atomic and/ors or protected by the same type lock.
tp_watched - also needs atomic and/or in PyType_Watch and PyType_Unwatch
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Bug report
Bug description:
Some areas of typeobject are still not thread safe after fixing mro. Those at least include:
tp_flags- most of these that change at runtime are probably protected by locks after MRO (e.g.Py_TPFLAGS_VALID_VERSION_TAGand various flags set while readying). But at least some get modified outside of the lock still (e.g. Py_TPFLAGS_IS_ABSTRACT,Py_TPFLAGS_SEQUENCEandPy_TPFLAGS_MAPPINGvia theabcmodule). These should maybe all be atomic and/ors or protected by the same type lock.tp_watched- also needs atomic and/or inPyType_WatchandPyType_UnwatchCPython versions tested on:
CPython main branch
Operating systems tested on:
No response