2002-04-16 Thomas Pfaff <tpfaff@gmx.net>

* dll_init.h (per_process::dtors_run): New member.
        * dll_init.cc (per_module::run_dtors): Run dtors only once.
        (dll::init): Initialize dtors_run flag.
This commit is contained in:
Robert Collins
2002-04-19 12:46:19 +00:00
parent e9f1cbd011
commit 4ce4e69db6
3 changed files with 14 additions and 0 deletions

View File

@ -59,6 +59,11 @@ void
per_module::run_dtors ()
{
void (**pfunc)() = dtors;
if( dtors_run )
return;
dtors_run = true;
for (int i = 1; pfunc[i]; i++)
(pfunc[i]) ();
}
@ -72,6 +77,8 @@ dll::init ()
/* Why didn't we just import this variable? */
*(p.envptr) = __cygwin_environ;
p.dtors_run = false;
/* Don't run constructors or the "main" if we've forked. */
if (!in_forkee)
{