summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/sigproc.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2003-12-26 04:40:52 +0000
committerChristopher Faylor <me@cgf.cx>2003-12-26 04:40:52 +0000
commit76832a5b32dd03a995e5c9c58b84da2ac5c6b26c (patch)
treeb42cabaa294528ec05fe1c0ebc6b1cbf5f4b478c /winsup/cygwin/sigproc.cc
parent1f32b7b382a5a7600874b5d582220984afd460b6 (diff)
downloadcygnal-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.cc20
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
}