[Python-Dev] Better module shutdown procedure

Daniel Stutzbach daniel at stutzbachenterprises.com
Thu Oct 15 01:27:37 CEST 2009


On Wed, Oct 14, 2009 at 6:05 PM, Neil Schemenauer <nas at arctrix.com> wrote:

>    def __del__():
>        print sys.version
>
> the global variable reference to 'sys' is not a reference on the GC
> referencing counting sense. IOW, it does not result in a a Py_INCREF
> while the function is not being executed and therefore should be
> safe after the proposed change. Currently, it could result in 'None'
> being printed.
>

Currently it throws an exception since "sys" is None. :-)

Here is my understanding of the proposed procedure:

1. Replace modules in sys.modules with weakrefs
2. Run the garbage collector
3. Replace globals in any remaining modules with None
4. Run the garbage collector

Is it possible for a __del__ method to be called in step 4 or not?  I am
still unclear on this point. :-)

--
Daniel Stutzbach, Ph.D.
President, Stutzbach Enterprises, LLC <http://stutzbachenterprises.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20091014/9b3e8287/attachment.htm>


More information about the Python-Dev mailing list