Serhiy Storchaka <[email protected]> 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 <[email protected]>
<https://bugs.python.org/issue41718>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com