diff options
author | Christopher Faylor <me@cgf.cx> | 2003-12-26 04:40:52 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2003-12-26 04:40:52 +0000 |
commit | 76832a5b32dd03a995e5c9c58b84da2ac5c6b26c (patch) | |
tree | b42cabaa294528ec05fe1c0ebc6b1cbf5f4b478c /winsup/cygwin/sigproc.cc | |
parent | 1f32b7b382a5a7600874b5d582220984afd460b6 (diff) | |
download | cygnal-76832a5b32dd03a995e5c9c58b84da2ac5c6b26c.tar.gz cygnal-76832a5b32dd03a995e5c9c58b84da2ac5c6b26c.tar.bz2 cygnal-76832a5b32dd03a995e5c9c58b84da2ac5c6b26c.zip |
* dcrt0.cc (reent_data): Reluctantly resurrect.
(__cygwin_user_data::impure_ptr): Ditto.
(_dll_crt0): Reluctantly initialize _impure_ptr here.
(initialize_main_tls): Eliminate local_clib initialization since it now happens
in init_thread.
* init.cc (dll_entry): Reluctantly remove code which set _impure_ptr to the
main thread's local_clib.
* perthread.h (reent_data): Remove obsolete declaration.
* sigproc.cc (proc_subproc): Add more debugging output.
(get_proc_lock): Ditto.
*dcrt0.cc (dll_crt0_1): Allocate argv[0] via malloc since main thread could
exit.
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r-- | winsup/cygwin/sigproc.cc | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 227a25b00..ae536aa04 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -226,14 +226,20 @@ get_proc_lock (DWORD what, DWORD val) { Static int lastwhat = -1; if (!sync_proc_subproc) - return false; + { + sigproc_printf ("sync_proc_subproc is NULL (1)"); + return false; + } if (sync_proc_subproc->acquire (WPSP)) { lastwhat = what; return true; } if (!sync_proc_subproc) - return false; + { + sigproc_printf ("sync_proc_subproc is NULL (2)"); + return false; + } system_printf ("Couldn't aquire sync_proc_subproc for(%d,%d), %E, last %d", what, val, lastwhat); return true; @@ -312,7 +318,7 @@ proc_subproc (DWORD what, DWORD val) if (!get_proc_lock (what, val)) // Serialize access to this function { - system_printf ("couldn't get proc lock. Something is wrong."); + system_printf ("couldn't get proc lock. what %d, val %d", what, val); goto out1; } @@ -546,9 +552,7 @@ proc_terminate (void) pchildren[i].release (); } nchildren = nzombies = 0; - /* Just zero sync_proc_subproc as the delete below seems to cause - problems for older gccs. */ - sync_proc_subproc = NULL; + sync_proc_subproc = NULL; } sigproc_printf ("leaving"); } @@ -1167,9 +1171,9 @@ wait_sig (VOID *self) int sigres = sig_handle (pack.sig, *pack.mask, pack.pid, pack.tls); if (sigres <= 0) { -#ifdef DEBUGGING +#ifdef DEBUGGING2 if (!sigres) - system_printf ("Failed to arm signal %d from pid %d"); + system_printf ("Failed to arm signal %d from pid %d", pack.sig, pack.pid); #endif sigqueue.add (pack.sig, pack.pid, pack.tls);// FIXME: Shouldn't add this in !sh condition } |