Safe to call Py_Initialize() frequently?

Graham Dumpleton Graham.Dumpleton at gmail.com
Mon Mar 23 02:14:38 CET 2009


On Mar 21, 10:27 am, Mark Hammond <skippy.hamm... at gmail.com> wrote:
> Calling
> Py_Initialize and Py_Finalize multiple times does leak (Python 3 has
> mechanisms so this need to always be true in the future, but it is true
> now for non-trivial apps.

Mark, can you please clarify this statement you are making. The
grammar used makes it a bit unclear.

Are you saying, that effectively by design, Python 3.0 will always
leak memory upon Py_Finalize() being called, or that it shouldn't leak
memory and that problems with older versions of Python have been fixed
up?

I know that some older versions of Python leaked memory on Py_Finalize
(), but if this is now guaranteed to always be the case and nothing
can be done about it, then the final death knell will have been rung
on mod_python and also embedded mode of mod_wsgi. This is because both
those systems rely on being able to call Py_Initialize()/Py_Finalize()
multiple times. At best they would have to change how they handle
initialisation of Python and defer it until sub processes have been
forked, but this will have some impact on performance and memory
usage.

So, more information appreciated.

Related link on mod_wsgi list about this at:

  http://groups.google.com/group/modwsgi/browse_frm/thread/65305cfc798c088c?hl=en

Graham





More information about the Python-list mailing list