Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-05-17 07:36:14 +0400
committerChristopher Faylor <me@cgf.cx>2006-05-17 07:36:14 +0400
commit9fa8d227d41aaa7436b1065ca0a2922c0bf2dfa9 (patch)
tree42e59614c76c2c6e7b126f747df4cffdf1f694fc /winsup
parent1e68a8ced0113808abebd7abb1f9de74f6c93f09 (diff)
* cygtls.cc (_cygtls::remove): Don't test for initialization since this
function will always be called when _my_tls is initialized. * init.cc (dll_entry): Don't attempt to remove tls info if _my_tls is obviously not even available.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/cygtls.cc2
-rw-r--r--winsup/cygwin/init.cc3
3 files changed, 9 insertions, 3 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 9291f8aa6..3ceaf4c94 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,10 @@
+2006-05-16 Christopher Faylor <cgf@timesys.com>
+
+ * cygtls.cc (_cygtls::remove): Don't test for initialization since
+ this function will always be called when _my_tls is initialized.
+ * init.cc (dll_entry): Don't attempt to remove tls info if _my_tls is
+ obviously not even available.
+
2006-05-15 Christopher Faylor <cgf@timesys.com>
* sigproc.cc (no_signals_available): Detect hwait_sig ==
diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc
index f897ca53f..4f4fe06e2 100644
--- a/winsup/cygwin/cygtls.cc
+++ b/winsup/cygwin/cygtls.cc
@@ -147,8 +147,6 @@ _cygtls::fixup_after_fork ()
void
_cygtls::remove (DWORD wait)
{
- if (!isinitialized ())
- return;
initialized = 0;
if (!locals.exitsock || exit_state >= ES_FINAL)
return;
diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc
index f73be7236..6a1575d15 100644
--- a/winsup/cygwin/init.cc
+++ b/winsup/cygwin/init.cc
@@ -156,7 +156,8 @@ dll_entry (HANDLE h, DWORD reason, void *static_load)
munge_threadfunc ();
break;
case DLL_THREAD_DETACH:
- if (hwait_sig)
+ if (hwait_sig && (void *) &_my_tls > (void *) &wow64_test_stack_marker
+ && _my_tls.isinitialized ())
_my_tls.remove (0);
break;
}