* thread.cc (pthread::exit): Cleanup on thread exit.
(__reent_t::init_clib): Set thread local clib __cleanup var appropriately.
This commit is contained in:
parent
030441fc69
commit
068834a10f
|
@ -1,3 +1,10 @@
|
||||||
|
2003-11-11 Christopher Faylor <cgf@redhat.com>
|
||||||
|
Thomas Pfaff <tpfaff@gmx.net>
|
||||||
|
|
||||||
|
* thread.cc (pthread::exit): Cleanup on thread exit.
|
||||||
|
(__reent_t::init_clib): Set thread local clib __cleanup var
|
||||||
|
appropriately.
|
||||||
|
|
||||||
2003-11-10 Christopher Faylor <cgf@redhat.com>
|
2003-11-10 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
* miscfuncs.cc (low_priority_sleep): Make a "C" function.
|
* miscfuncs.cc (low_priority_sleep): Make a "C" function.
|
||||||
|
|
|
@ -377,6 +377,8 @@ pthread::exit (void *value_ptr)
|
||||||
mutex.unlock ();
|
mutex.unlock ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(_reclaim_reent) (_REENT);
|
||||||
|
|
||||||
if (InterlockedDecrement (&MT_INTERFACE->threadcount) == 0)
|
if (InterlockedDecrement (&MT_INTERFACE->threadcount) == 0)
|
||||||
::exit (0);
|
::exit (0);
|
||||||
else
|
else
|
||||||
|
@ -1879,6 +1881,7 @@ __reent_t::init_clib (struct _reent& var)
|
||||||
var._stdout = _GLOBAL_REENT->_stdout;
|
var._stdout = _GLOBAL_REENT->_stdout;
|
||||||
var._stderr = _GLOBAL_REENT->_stderr;
|
var._stderr = _GLOBAL_REENT->_stderr;
|
||||||
var.__sdidinit = _GLOBAL_REENT->__sdidinit;
|
var.__sdidinit = _GLOBAL_REENT->__sdidinit;
|
||||||
|
var.__cleanup = _GLOBAL_REENT->__cleanup;
|
||||||
_clib = &var;
|
_clib = &var;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue