This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author MrJean1
Recipients MrJean1, nnorwitz
Date 2007-10-26.17:18:27
SpamBayes Score 0.010489292
Marked as misclassified No
Message-id <1193419108.04.0.446922475461.issue1329@psf.upfronthosting.co.za>
In-reply-to
Content
Using atexit() to install the destructor function does not help.  The 
function in not called when 3.0a1 exits, but with 2.5.1 it is.  Same 
behavior on Linux and MacOS X.

Btw, that would mean that any C extension which uses atexit() directly 
may be affected by this issue.

Running python with the debugger shows that 3.0a1 and 2.5.1 both exit 
thru exit() and not _exit().  A breakpoint at _exit is hit, but the call 
originates from exit and not anywhere in the python binary.

There is a new atexitmodule.c in 3.0a1 which did not exits in 2.5.1.  
But that is handling the atexit functionality at the Python level and 
not C.

This man page <http://linux.die.net/man/3/atexit> mentions that all 
registered atexit functions are removed after a fork+exec.  But 
breakpoints set at fork, fork1, forkpty and vfork are never hit by 
3.0a1.

That is as far as I got.
History
Date User Action Args
2007-10-26 17:18:28MrJean1setspambayes_score: 0.0104893 -> 0.010489292
recipients: + MrJean1, nnorwitz
2007-10-26 17:18:28MrJean1setspambayes_score: 0.0104893 -> 0.0104893
messageid: <1193419108.04.0.446922475461.issue1329@psf.upfronthosting.co.za>
2007-10-26 17:18:28MrJean1linkissue1329 messages
2007-10-26 17:18:27MrJean1create