mirror of https://github.com/python/cpython
bpo-32604: Fix memory leaks in the new _xxsubinterpreters module. (#5507)
This commit is contained in:
parent
2f79c01493
commit
4e9da0d163
|
@ -362,13 +362,15 @@ class DestroyTests(TestBase):
|
|||
def test_from_current(self):
|
||||
main, = interpreters.list_all()
|
||||
id = interpreters.create()
|
||||
script = dedent("""
|
||||
script = dedent(f"""
|
||||
import _xxsubinterpreters as _interpreters
|
||||
_interpreters.destroy({})
|
||||
""").format(id)
|
||||
try:
|
||||
_interpreters.destroy({id})
|
||||
except RuntimeError:
|
||||
pass
|
||||
""")
|
||||
|
||||
with self.assertRaises(RuntimeError):
|
||||
interpreters.run_string(id, script)
|
||||
interpreters.run_string(id, script)
|
||||
self.assertEqual(set(interpreters.list_all()), {main, id})
|
||||
|
||||
def test_from_sibling(self):
|
||||
|
@ -761,12 +763,12 @@ class ChannelIDTests(TestBase):
|
|||
self.assertEqual(int(cid), 10)
|
||||
|
||||
def test_bad_id(self):
|
||||
ids = [-1, 2**64, "spam"]
|
||||
for cid in ids:
|
||||
for cid in [-1, 'spam']:
|
||||
with self.subTest(cid):
|
||||
with self.assertRaises(ValueError):
|
||||
interpreters._channel_id(cid)
|
||||
|
||||
with self.assertRaises(OverflowError):
|
||||
interpreters._channel_id(2**64)
|
||||
with self.assertRaises(TypeError):
|
||||
interpreters._channel_id(object())
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1242,6 +1242,7 @@ _PyCrossInterpreterData_Lookup(PyObject *obj)
|
|||
break;
|
||||
}
|
||||
}
|
||||
Py_DECREF(cls);
|
||||
PyThread_release_lock(_PyRuntime.xidregistry.mutex);
|
||||
return getdata;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue