Serhiy Storchaka <storchaka+cpyt...@gmail.com> added the comment:

You could save/restore this data only when corresponded modules was imported, 
like it was done in clear_caches() in refleak.py. For example:

    # Same for Process objects
    def get_multiprocessing_process__dangling(self):
        multiprocessing_process = sys.modules.get('multiprocessing.process')
        if not multiprocessing_process:
            return set()
        # Unjoined process objects can survive after process exits
        multiprocessing_process._cleanup()
        # This copies the weakrefs without making any strong reference
        return multiprocessing_process._dangling.copy()
    def restore_multiprocessing_process__dangling(self, saved):
        multiprocessing_process = sys.modules.get('multiprocessing.process')
        if not multiprocessing_process:
            return
        multiprocessing_process._dangling.clear()
        multiprocessing_process._dangling.update(saved)

----------
nosy: +serhiy.storchaka

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41718>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to