You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
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
Activity
kumaraditya303 commentedon Jul 1, 2025
I think both of the issues are fixed now:
PyType_Watchis now documented to be thread unsafe. gh-131544: Update docs for PyType_AddWatcher #132015kumaraditya303 commentedon Jul 1, 2025
Closing as it is fixed on main branch.