summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/cygtls.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-03-13 04:26:57 +0000
committerChristopher Faylor <me@cgf.cx>2006-03-13 04:26:57 +0000
commit9badd94adb585e28a3ef7918a88c49b3a855edf8 (patch)
tree1ebd798bfa3070e3890d43c3b7ce11beaacff00a /winsup/cygwin/cygtls.cc
parent51f90b2f01642f40b491df371e016b79f02e3f1b (diff)
downloadcygnal-9badd94adb585e28a3ef7918a88c49b3a855edf8.tar.gz
cygnal-9badd94adb585e28a3ef7918a88c49b3a855edf8.tar.bz2
cygnal-9badd94adb585e28a3ef7918a88c49b3a855edf8.zip
* cygtls.cc (_cygtls::remove): Reset initialized flag right away if we were
previously initialized. * cygtls.h (_cygtls::initialized): Move nearer the end to catch situation when Windows 98 mysteriously changes pieces of cygtls when thread is detaching. * gendef (__sigfe_maybe): Simplify slightly. * tlsoffsets.h: Regenerate.
Diffstat (limited to 'winsup/cygwin/cygtls.cc')
-rw-r--r--winsup/cygwin/cygtls.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc
index 387316c8d..70f5a56d8 100644
--- a/winsup/cygwin/cygtls.cc
+++ b/winsup/cygwin/cygtls.cc
@@ -147,7 +147,10 @@ _cygtls::fixup_after_fork ()
void
_cygtls::remove (DWORD wait)
{
- if (!isinitialized () || !locals.exitsock || exit_state >= ES_FINAL)
+ if (!isinitialized ())
+ return;
+ initialized = 0;
+ if (!locals.exitsock || exit_state >= ES_FINAL)
return;
debug_printf ("wait %p", wait);