This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Static destructors not running

On Tue, May 10, 2005 at 11:54:45AM -0400, William M. (Mike) Miller wrote:
>On 5/10/05, Christopher Faylor <> wrote:
>> On Tue, May 10, 2005 at 09:06:36AM -0400, William M. (Mike) Miller wrote:
>> >I'm still left with the problem of figuring out what changed to cause
>> >this result.  Until I ran the "setup" application last Friday, I was
>> >seeing output from static destructors, and now I don't.  It would
>> >save me a lot of work to be able to restore the old behavior, but I
>> >don't know what was responsible for this change.
>> Just as a wild guess, does explicitly calling exit help at all?
>Yes, the output does appear when I call exit instead of returning
>from main().  Unfortunately, that's not an option.  For one thing,
>this is shared code that works just fine on other systems (and
>under Cygwin until I updated last Friday).  For another, the
>semantics of calling exit in main() are not exactly the same as
>returning from main() -- local automatic objects in main() are not
>destroyed by the exit() call, which is something some of this
>code that is now failing relies on.

I was trying to figure out the problem, not suggest that you should
change all of your code.

Previous to 1.5.16, static destructors were always called via a
gcc "atexit" mechanism.  This meant that there were scenarios where
destructors would not be called at all so I made cygwin's exit call
the destructors explicitly.   I just forgot to make cygwin do the right
thing when returning from main rather than exiting.  This will be
fixed in the next snapshot.


Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]