for thread in threads:
thread.join()
+ def test_object_class_change(self):
+ class Base:
+ def __init__(self):
+ self.attr = 123
+ class ClassA(Base):
+ pass
+ class ClassB(Base):
+ pass
+
+ obj = ClassA()
+ # keep reference to __dict__
+ d = obj.__dict__
+ obj.__class__ = ClassB
+
+
def run_one(self, writer_func, reader_func):
writer = Thread(target=writer_func)
readers = []
// We could be called with an unlocked dict when the caller knows the
// values are already detached, so we assert after inline values check.
- _Py_CRITICAL_SECTION_ASSERT_OBJECT_LOCKED(mp);
+ ASSERT_WORLD_STOPPED_OR_OBJ_LOCKED(mp);
assert(mp->ma_values->embedded == 1);
assert(mp->ma_values->valid == 1);
assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_INLINE_VALUES);