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:
@ -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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user