Graham Dumpleton <[EMAIL PROTECTED]> added the comment:

I wouldn't be concerned about mod_python as likelihood that it will be ported 
is 
very low and even if it was it would be a long long way in the future. There is 
too 
much in mod_python itself unrelated to Python 3.0 that needs to be fixed before 
a 
port to Python 3.0 should be considered.

As to mod_wsgi, I can work around it in the short term by installing an 
'atexit' 
module replacement in sub interpreters and avoid the problem.

As to a solution, yes, using PyInterpreterState would seem the most logical 
place, 
however there is a lot more to it than that.

Prior to Python 3.0, any callbacks registered with atexit module in sub 
interpreters 
weren't called anyway. This is because Py_EndInterpreter() didn't trigger them, 
nor 
did Py_Finalize(). The latter is in Python 3.0 at the moment, but as pointed 
out 
that is a problem in itself.

So, although one may register sub interpreter atexit callbacks against 
PyInterpreterState, what would be done with them. A decision would need to be 
made 
as to whether Py_EndInterpreter() should trigger them, or whether the status 
quo be 
maintained and nothing done with them.

In the short term, ie., for Python 3.0.0, the simplest thing to do may be to 
have 
functions of atexit module silently not actually do anything for sub 
interpreters.

The only place this would probably cause a problem would be for mod_wsgi where 
it 
was itself calling sys.exitfunc() on sub interpreters to ensure they were run. 
Since 
mod_wsgi has to change for Python 3.0 anyway, to call atexit._run_exitfuncs, 
with a 
bit more work mod_wsgi can just replace atexit module altogether in sub 
interpreter 
context and have mod_wsgi track the callback functions and trigger them.

By having atexit module ignore stuff for sub interpreters, at least for now 
avoid 
problem of callbacks against sub interpreters being execute by Py_Finalize() in 
main 
interpreter context.

And no I haven't looked at how PEP 3121 has changed things in Python 3.0. Up 
till 
now I hadn't seen any problems to suggest I may need to look at it.

_______________________________________
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue4200>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to