[PATCH] dtors run twice on dll detach (update)

Robert Collins robert.collins@itdomain.com.au
Thu May 2 05:32:00 GMT 2002



> -----Original Message-----
> From: Christopher Faylor [mailto:cgf@redhat.com] 
> Sent: Wednesday, May 01, 2002 1:49 AM

> If we just avoid setting up the destructor calls using atexit 
> then the destructors will only run once.  So, in the normal 
> case, the destructor will run after much cleanup has occurred 
> in the cygwin DLL (specifically in the do_exit function).  
> This means that the destructor may not be able to use all of 
> the facilities of cygwin when it is finally executed.

Yup. That is why I don't think that the atexit call is obsolete.
 
> This won't be an issue for the problem below, but I wonder if 
> it is a problem for other destructors.  I'm not sure what 
> kind of environment a global destructor is guaranteed to have 
> but I suspect that it should be a completely normal environment.
> 
> Anyone know for sure?  Is there an online reference for this 
> kind of thing?

It'll be in the C++ standard, which is proprietary :[. Anyone here have
the standard and care to check for us?

Rob



More information about the Cygwin-patches mailing list