From 068834a10fd795d3a4e113341d6c1cc8eb0e2fe7 Mon Sep 17 00:00:00 2001 From: Thomas Pfaff Date: Tue, 11 Nov 2003 19:10:47 +0000 Subject: * thread.cc (pthread::exit): Cleanup on thread exit. (__reent_t::init_clib): Set thread local clib __cleanup var appropriately. --- winsup/cygwin/thread.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'winsup/cygwin/thread.cc') diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 93aeb97db..d5a393691 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -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; }; -- cgit v1.2.3