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
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-10-07 08:12:54 +0400
committerChristopher Faylor <me@cgf.cx>2002-10-07 08:12:54 +0400
commitbc63ea872c24c2e362dc64b7063cc90c9b49935d (patch)
tree814f77c4b4a05f9d8a4773f790c0d791a440ca9a
parent66451d9590a72c3a6157d5c4378c781955c37386 (diff)
* 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.
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/dcrt0.cc4
-rw-r--r--winsup/cygwin/init.cc16
3 files changed, 14 insertions, 12 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index cc93104f3..9c2de0c8d 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -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.
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index e3c69a6cb..4b752cf63 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -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 ();
diff --git a/winsup/cygwin/init.cc b/winsup/cygwin/init.cc
index 9c942f270..311429351 100644
--- a/winsup/cygwin/init.cc
+++ b/winsup/cygwin/init.cc
@@ -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;