diff options
author | Christopher Faylor <me@cgf.cx> | 2006-05-17 03:36:14 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2006-05-17 03:36:14 +0000 |
commit | 9fa8d227d41aaa7436b1065ca0a2922c0bf2dfa9 (patch) | |
tree | 42e59614c76c2c6e7b126f747df4cffdf1f694fc | |
parent | 1e68a8ced0113808abebd7abb1f9de74f6c93f09 (diff) | |
download | newlib-9fa8d227d41aaa7436b1065ca0a2922c0bf2dfa9.zip newlib-9fa8d227d41aaa7436b1065ca0a2922c0bf2dfa9.tar.gz newlib-9fa8d227d41aaa7436b1065ca0a2922c0bf2dfa9.tar.bz2 |
* 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.
-rw-r--r-- | winsup/cygwin/ChangeLog | 7 | ||||
-rw-r--r-- | winsup/cygwin/cygtls.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/init.cc | 3 |
3 files changed, 9 insertions, 3 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 9291f8a..3ceaf4c 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 f897ca5..4f4fe06 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 f73be72..6a1575d 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; } |