]> sourceware.org Git - newlib-cygwin.git/commitdiff
* cygtls.cc (_cygtls::remove): Reset initialized flag right away if we were
authorChristopher Faylor <me@cgf.cx>
Mon, 13 Mar 2006 04:26:57 +0000 (04:26 +0000)
committerChristopher Faylor <me@cgf.cx>
Mon, 13 Mar 2006 04:26:57 +0000 (04:26 +0000)
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.

winsup/cygwin/ChangeLog
winsup/cygwin/cygtls.cc
winsup/cygwin/cygtls.h
winsup/cygwin/gendef
winsup/cygwin/tlsoffsets.h

index 7d9a24d31003f50aeca17e8ffaf859e04a968a65..de73b9258ad2a32f6d186fa3d6f3bf12e5bf9702 100644 (file)
@@ -1,3 +1,13 @@
+2006-03-12  Christopher Faylor  <cgf@timesys.com>
+
+       * 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.
+
 2006-03-12  Christopher Faylor  <cgf@timesys.com>
 
        * cygtls.h (CYGTLS_INITIALIZED): Change to a little more unlikely value.
index 387316c8d758c9a5247916c691efbdafdf9f5221..70f5a56d897c480d76139e186124d6be77386de1 100644 (file)
@@ -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);
index c2120143473c2b4a832845c5f7eaf5af3002b2e5..030680be08a12f78f726d20c5bd3207fb18c4911 100644 (file)
@@ -144,7 +144,6 @@ struct _cygtls
   sigset_t deltamask;
   HANDLE event;
   int *errno_addr;
-  unsigned initialized;
   sigset_t sigmask;
   sigset_t sigwait_mask;
   siginfo_t *sigwait_info;
@@ -170,6 +169,7 @@ struct _cygtls
   unsigned stacklock;
   __stack_t *stackptr;
   __stack_t stack[TLS_STACK_SIZE];
+  unsigned initialized;
   unsigned padding[0];
 
   /*gentls_offsets*/
index 40796f094c7fcd7e8ddf75aa93eaf3ac363df935..b31d71b3a19ddbc13faa116b6054fffb70b7716b 100755 (executable)
@@ -109,8 +109,7 @@ __sigfe_maybe:
        je      1f
        popl    %edx
        popl    %ebx
-       popl    %eax
-       jmp     *%eax
+       ret
 
 __sigfe:
        pushl   %ebx
index 8e9aec8336f69e662c83ed5b3c7d9b75d7385bdf..9002abfce8d30e3d58f936b3bc82b83fca49e34b 100644 (file)
 //; $tls::pevent = 20;
 //; $tls::errno_addr = -4188;
 //; $tls::perrno_addr = 24;
-//; $tls::initialized = -4184;
-//; $tls::pinitialized = 28;
-//; $tls::sigmask = -4180;
-//; $tls::psigmask = 32;
-//; $tls::sigwait_mask = -4176;
-//; $tls::psigwait_mask = 36;
-//; $tls::sigwait_info = -4172;
-//; $tls::psigwait_info = 40;
-//; $tls::thread_context = -4168;
-//; $tls::pthread_context = 44;
-//; $tls::thread_id = -3956;
-//; $tls::pthread_id = 256;
-//; $tls::threadkill = -3952;
-//; $tls::pthreadkill = 260;
-//; $tls::infodata = -3948;
-//; $tls::pinfodata = 264;
-//; $tls::tid = -3800;
-//; $tls::ptid = 412;
-//; $tls::local_clib = -3796;
-//; $tls::plocal_clib = 416;
-//; $tls::__dontuse = -3796;
-//; $tls::p__dontuse = 416;
-//; $tls::locals = -2732;
-//; $tls::plocals = 1480;
-//; $tls::_ctinfo = -1100;
-//; $tls::p_ctinfo = 3112;
-//; $tls::el = -1096;
-//; $tls::pel = 3116;
-//; $tls::andreas = -1088;
-//; $tls::pandreas = 3124;
-//; $tls::wq = -1080;
-//; $tls::pwq = 3132;
-//; $tls::prev = -1052;
-//; $tls::pprev = 3160;
-//; $tls::next = -1048;
-//; $tls::pnext = 3164;
-//; $tls::sig = -1044;
-//; $tls::psig = 3168;
-//; $tls::incyg = -1040;
-//; $tls::pincyg = 3172;
-//; $tls::spinning = -1036;
-//; $tls::pspinning = 3176;
-//; $tls::stacklock = -1032;
-//; $tls::pstacklock = 3180;
-//; $tls::stackptr = -1028;
-//; $tls::pstackptr = 3184;
-//; $tls::stack = -1024;
-//; $tls::pstack = 3188;
+//; $tls::sigmask = -4184;
+//; $tls::psigmask = 28;
+//; $tls::sigwait_mask = -4180;
+//; $tls::psigwait_mask = 32;
+//; $tls::sigwait_info = -4176;
+//; $tls::psigwait_info = 36;
+//; $tls::thread_context = -4172;
+//; $tls::pthread_context = 40;
+//; $tls::thread_id = -3960;
+//; $tls::pthread_id = 252;
+//; $tls::threadkill = -3956;
+//; $tls::pthreadkill = 256;
+//; $tls::infodata = -3952;
+//; $tls::pinfodata = 260;
+//; $tls::tid = -3804;
+//; $tls::ptid = 408;
+//; $tls::local_clib = -3800;
+//; $tls::plocal_clib = 412;
+//; $tls::__dontuse = -3800;
+//; $tls::p__dontuse = 412;
+//; $tls::locals = -2736;
+//; $tls::plocals = 1476;
+//; $tls::_ctinfo = -1104;
+//; $tls::p_ctinfo = 3108;
+//; $tls::el = -1100;
+//; $tls::pel = 3112;
+//; $tls::andreas = -1092;
+//; $tls::pandreas = 3120;
+//; $tls::wq = -1084;
+//; $tls::pwq = 3128;
+//; $tls::prev = -1056;
+//; $tls::pprev = 3156;
+//; $tls::next = -1052;
+//; $tls::pnext = 3160;
+//; $tls::sig = -1048;
+//; $tls::psig = 3164;
+//; $tls::incyg = -1044;
+//; $tls::pincyg = 3168;
+//; $tls::spinning = -1040;
+//; $tls::pspinning = 3172;
+//; $tls::stacklock = -1036;
+//; $tls::pstacklock = 3176;
+//; $tls::stackptr = -1032;
+//; $tls::pstackptr = 3180;
+//; $tls::stack = -1028;
+//; $tls::pstack = 3184;
+//; $tls::initialized = -4;
+//; $tls::pinitialized = 4208;
 //; $tls::padding = 0;
 //; $tls::ppadding = 4212;
 //; __DATA__
 #define tls_pevent (20)
 #define tls_errno_addr (-4188)
 #define tls_perrno_addr (24)
-#define tls_initialized (-4184)
-#define tls_pinitialized (28)
-#define tls_sigmask (-4180)
-#define tls_psigmask (32)
-#define tls_sigwait_mask (-4176)
-#define tls_psigwait_mask (36)
-#define tls_sigwait_info (-4172)
-#define tls_psigwait_info (40)
-#define tls_thread_context (-4168)
-#define tls_pthread_context (44)
-#define tls_thread_id (-3956)
-#define tls_pthread_id (256)
-#define tls_threadkill (-3952)
-#define tls_pthreadkill (260)
-#define tls_infodata (-3948)
-#define tls_pinfodata (264)
-#define tls_tid (-3800)
-#define tls_ptid (412)
-#define tls_local_clib (-3796)
-#define tls_plocal_clib (416)
-#define tls___dontuse (-3796)
-#define tls_p__dontuse (416)
-#define tls_locals (-2732)
-#define tls_plocals (1480)
-#define tls__ctinfo (-1100)
-#define tls_p_ctinfo (3112)
-#define tls_el (-1096)
-#define tls_pel (3116)
-#define tls_andreas (-1088)
-#define tls_pandreas (3124)
-#define tls_wq (-1080)
-#define tls_pwq (3132)
-#define tls_prev (-1052)
-#define tls_pprev (3160)
-#define tls_next (-1048)
-#define tls_pnext (3164)
-#define tls_sig (-1044)
-#define tls_psig (3168)
-#define tls_incyg (-1040)
-#define tls_pincyg (3172)
-#define tls_spinning (-1036)
-#define tls_pspinning (3176)
-#define tls_stacklock (-1032)
-#define tls_pstacklock (3180)
-#define tls_stackptr (-1028)
-#define tls_pstackptr (3184)
-#define tls_stack (-1024)
-#define tls_pstack (3188)
+#define tls_sigmask (-4184)
+#define tls_psigmask (28)
+#define tls_sigwait_mask (-4180)
+#define tls_psigwait_mask (32)
+#define tls_sigwait_info (-4176)
+#define tls_psigwait_info (36)
+#define tls_thread_context (-4172)
+#define tls_pthread_context (40)
+#define tls_thread_id (-3960)
+#define tls_pthread_id (252)
+#define tls_threadkill (-3956)
+#define tls_pthreadkill (256)
+#define tls_infodata (-3952)
+#define tls_pinfodata (260)
+#define tls_tid (-3804)
+#define tls_ptid (408)
+#define tls_local_clib (-3800)
+#define tls_plocal_clib (412)
+#define tls___dontuse (-3800)
+#define tls_p__dontuse (412)
+#define tls_locals (-2736)
+#define tls_plocals (1476)
+#define tls__ctinfo (-1104)
+#define tls_p_ctinfo (3108)
+#define tls_el (-1100)
+#define tls_pel (3112)
+#define tls_andreas (-1092)
+#define tls_pandreas (3120)
+#define tls_wq (-1084)
+#define tls_pwq (3128)
+#define tls_prev (-1056)
+#define tls_pprev (3156)
+#define tls_next (-1052)
+#define tls_pnext (3160)
+#define tls_sig (-1048)
+#define tls_psig (3164)
+#define tls_incyg (-1044)
+#define tls_pincyg (3168)
+#define tls_spinning (-1040)
+#define tls_pspinning (3172)
+#define tls_stacklock (-1036)
+#define tls_pstacklock (3176)
+#define tls_stackptr (-1032)
+#define tls_pstackptr (3180)
+#define tls_stack (-1028)
+#define tls_pstack (3184)
+#define tls_initialized (-4)
+#define tls_pinitialized (4208)
 #define tls_padding (0)
 #define tls_ppadding (4212)
This page took 0.046482 seconds and 5 git commands to generate.