In the following programs, we call check_reentrant_insertion("s") twice, after multiple of update and clear of dict, the Python interpreter crashes.
+++++++++++++++++++++++++++++++++++++++++++
def check_reentrant_insertion(mutate):
class Mutating:
def __del__(self):
mutate(d)
d = {k: Mutating() for k in 'abcdefghijklmnopqr'}
for k in list(d):
d[k] = k
def test_reentrant_insertion():
check_reentrant_insertion("s")
def mutate(d):
d.update(DictTest.__dict__)
d.clear()
check_reentrant_insertion(test_reentrant_insertion())
test_reentrant_insertion()
+++++++++++++++++++++++++++++++++++++++++
System Info: Ubuntu 16.04
Python Version: Python 3.9.1 |