* thread.cc (pthread::exit): Cleanup on thread exit.

(__reent_t::init_clib): Set thread local clib __cleanup var
appropriately.
This commit is contained in:
Thomas Pfaff 2003-11-11 19:10:47 +00:00
parent 030441fc69
commit 068834a10f
2 changed files with 10 additions and 0 deletions

View File

@ -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>
* miscfuncs.cc (low_priority_sleep): Make a "C" function.

View File

@ -377,6 +377,8 @@ pthread::exit (void *value_ptr)
mutex.unlock ();
}
(_reclaim_reent) (_REENT);
if (InterlockedDecrement (&MT_INTERFACE->threadcount) == 0)
::exit (0);
else
@ -1879,6 +1881,7 @@ __reent_t::init_clib (struct _reent& var)
var._stdout = _GLOBAL_REENT->_stdout;
var._stderr = _GLOBAL_REENT->_stderr;
var.__sdidinit = _GLOBAL_REENT->__sdidinit;
var.__cleanup = _GLOBAL_REENT->__cleanup;
_clib = &var;
};