* globals.cc (enum exit_states::ES_GLOBAL_DTORS): Delete.
* dcrt0.cc (__main): Schedule dll_global_dtors to run atexit before global dtors. (do_exit): Delete test for ES_GLOBAL_DTORS and call to dll_global_dtors.
This commit is contained in:
parent
0986989f6a
commit
900f20710f
|
@ -1,3 +1,11 @@
|
|||
2009-07-29 Dave Korn <dave.korn.cygwin@googlemail.com>
|
||||
|
||||
* globals.cc (enum exit_states::ES_GLOBAL_DTORS): Delete.
|
||||
* dcrt0.cc (__main): Schedule dll_global_dtors to run
|
||||
atexit before global dtors.
|
||||
(do_exit): Delete test for ES_GLOBAL_DTORS and call to
|
||||
dll_global_dtors.
|
||||
|
||||
2009-07-29 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* path.h (class path_conv): Convert path from char array to char *.
|
||||
|
|
|
@ -993,8 +993,17 @@ cygwin_dll_init ()
|
|||
extern "C" void
|
||||
__main (void)
|
||||
{
|
||||
/* Ordering is critical here. DLL ctors have already been
|
||||
run as they were being loaded, so we should stack the
|
||||
queued call to DLL dtors now. */
|
||||
atexit (dll_global_dtors);
|
||||
do_global_ctors (user_data->ctors, false);
|
||||
/* Now we have run global ctors, register their dtors. */
|
||||
atexit (do_global_dtors);
|
||||
/* At exit, global dtors will run first, so the app can still
|
||||
use shared library functions while terminating; then the
|
||||
DLLs will be destroyed; finally newlib will shut down stdio
|
||||
and terminate itself. */
|
||||
}
|
||||
|
||||
void __stdcall
|
||||
|
@ -1013,12 +1022,6 @@ do_exit (int status)
|
|||
|
||||
lock_process until_exit (true);
|
||||
|
||||
if (exit_state < ES_GLOBAL_DTORS)
|
||||
{
|
||||
exit_state = ES_GLOBAL_DTORS;
|
||||
dll_global_dtors ();
|
||||
}
|
||||
|
||||
if (exit_state < ES_EVENTS_TERMINATE)
|
||||
{
|
||||
exit_state = ES_EVENTS_TERMINATE;
|
||||
|
|
|
@ -30,7 +30,6 @@ enum exit_states
|
|||
{
|
||||
ES_NOT_EXITING = 0,
|
||||
ES_PROCESS_LOCKED,
|
||||
ES_GLOBAL_DTORS,
|
||||
ES_EVENTS_TERMINATE,
|
||||
ES_THREADTERM,
|
||||
ES_SIGNAL,
|
||||
|
|
Loading…
Reference in New Issue