[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