From 8323a37d5d8987f766001221b99395b8a7a39751 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 24 Aug 2011 14:23:38 +0000 Subject: * thread.cc (pthread::exit): Create dummy tls structure to hold _main_tls contents if we've asked _main_tls to exit. --- winsup/cygwin/thread.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/thread.cc') diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 389c8fda3..953e0c9f8 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -517,7 +517,16 @@ pthread::exit (void *value_ptr) if (InterlockedDecrement (&MT_INTERFACE->threadcount) == 0) ::exit (0); else - ExitThread (0); + { + if (cygtls == _main_tls) + { + _cygtls *dummy = (_cygtls *) malloc (sizeof (_cygtls)); + *dummy = *_main_tls; + _main_tls = dummy; + _main_tls->initialized = false; + } + ExitThread (0); + } } int -- cgit v1.2.3