mirror of
https://github.com/python/cpython.git
synced 2025-10-03 05:35:59 +00:00
[3.12] gh-121084: Call _abc_registry_clear() when checking refleaks (GH-121191) (#121209)
gh-121084: Call _abc_registry_clear() when checking refleaks (GH-121191)
dash_R_cleanup() now calls _abc_registry_clear() before calling again
register().
(cherry picked from commit c766ad206e
)
Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
parent
b80edafff2
commit
3fba86e8b8
1 changed files with 7 additions and 3 deletions
|
@ -239,9 +239,13 @@ def dash_R_cleanup(fs, ps, pic, zdc, abcs):
|
|||
abs_classes = filter(isabstract, abs_classes)
|
||||
for abc in abs_classes:
|
||||
for obj in abc.__subclasses__() + [abc]:
|
||||
for ref in abcs.get(obj, set()):
|
||||
if ref() is not None:
|
||||
obj.register(ref())
|
||||
refs = abcs.get(obj, None)
|
||||
if refs is not None:
|
||||
obj._abc_registry_clear()
|
||||
for ref in refs:
|
||||
subclass = ref()
|
||||
if subclass is not None:
|
||||
obj.register(subclass)
|
||||
obj._abc_caches_clear()
|
||||
|
||||
# Clear caches
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue