]> sourceware.org Git - newlib-cygwin.git/commitdiff
* dcrt0.cc (do_exit): Call DisableThreadLibraryCalls since we don't need to
authorChristopher Faylor <me@cgf.cx>
Mon, 7 Oct 2002 04:12:54 +0000 (04:12 +0000)
committerChristopher Faylor <me@cgf.cx>
Mon, 7 Oct 2002 04:12:54 +0000 (04:12 +0000)
track thread detaches.
* init.cc (dll_entry): Reorganize slightly.  Fix api_fatal message.

winsup/cygwin/ChangeLog
winsup/cygwin/dcrt0.cc
winsup/cygwin/init.cc

index cc93104f3acc0c87cd3e1821eeb87080e2a55d92..9c2de0c8d9e515a9fd4cc4e9de6922323298504e 100644 (file)
@@ -1,3 +1,9 @@
+2002-10-07  Christopher Faylor  <cgf@redhat.com>
+
+       * dcrt0.cc (do_exit): Call DisableThreadLibraryCalls since we don't
+       need to track thread detaches.
+       * init.cc (dll_entry): Reorganize slightly.  Fix api_fatal message.
+
 2002-10-05  Christopher Faylor  <cgf@redhat.com>
 
        * cygthread.cc (cygthread::stub): Very minor cleanup.
index e3c69a6cbf4f28cab3197ed1f691af60de1dde7b..4b752cf631cd674a621021faf549e963e796a04d 100644 (file)
@@ -958,6 +958,10 @@ do_exit (int status)
   UINT n = (UINT) status;
   static int NO_COPY exit_state = 0;
 
+  if (!DisableThreadLibraryCalls (cygwin_hmodule))
+    system_printf ("DisableThreadLibraryCalls (%p) failed, %E",
+                  cygwin_hmodule);
+
   syscall_printf ("do_exit (%d)", n);
 
   vfork_save *vf = vfork_storage.val ();
index 9c942f270895be4dc04267271f2bba3abba18b0a..311429351290bccfc27d2f1ead7801f2f8606660 100644 (file)
@@ -24,26 +24,18 @@ WINAPI dll_entry (HANDLE h, DWORD reason, void *static_load)
       cygwin_hmodule = (HMODULE) h;
       dynamically_loaded = (static_load == NULL);
       break;
+    case DLL_PROCESS_DETACH:
+      break;
     case DLL_THREAD_ATTACH:
       if (user_data->threadinterface)
        {
          if (!TlsSetValue (user_data->threadinterface->reent_index,
                            &user_data->threadinterface->reents))
-           api_fatal ("Sig proc MT init failed\n");
+           api_fatal ("thread initialization failed");
        }
       break;
-    case DLL_PROCESS_DETACH:
-      break;
     case DLL_THREAD_DETACH:
-#if 0
-      pthread *thisthread = (pthread *)
-       TlsGetValue (user_data->threadinterface->thread_self_dwTlsIndex);
-      if (thisthread) {
-         /* Some non-pthread call created this thread,
-          * but we need to clean it up */
-         thisthread->exit (0);
-      }
-#endif
+      /* not invoked */;
       break;
     }
   return 1;
This page took 0.034323 seconds and 5 git commands to generate.