On 08:16 pm, firstname.lastname@example.org wrote:
The current shutdown code in pythonrun.c zaps module globals by setting them to None (an attempt to break reference cycles). That causes problems since __del__ methods can try to use the globals after they have been set to None.
The procedure implemented by http://bugs.python.org/issue812369 seems to be a better idea. References to modules are replaced by weak references and the GC is allowed to cleanup reference cycles.
I would like to commit this change but I'm not sure if it is a good time in the development cycle or if anyone has objections to the idea. Please speak up if you have input.
I notice that the patch doesn't include any unit tests for the feature being provided (it does change test_sys.py - although I don't understand how that change is related to this feature). I hope that regardless of whatever else is decided, if the change is to be made, it will be accompanied by new unit tests verify its proper operation.