Tim Peters <t...@python.org> added the comment:
> I see that handle_weakrefs() calls _PyWeakref_ClearRef() and that > will clear the weakref even if it doesn't have callback. So, I > think that takes care for the hole I was worried about. I.e. a > __del__ method could have a weakref to an non-valid object. > However, because handle_weakrefs() will find that weakref, it will > have been cleared when the __del__ method executes. There's no problem with objects we _know_ are trash. Their finalizers are all force-run before delete_garbage starts. It's "surprise" finalizers, triggered by refcounts falling to 0 while delete_garbage is running. They're invisible to handle_weakrefs. However, to the extent that delete_garage is effective in deallocating objects soon after clearing them, to that extent also will invalidated objects clear weak references to them as a matter of course. ' ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38006> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com