diff options
author | Christopher Faylor <me@cgf.cx> | 2005-06-15 22:50:31 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-06-15 22:50:31 +0000 |
commit | a9c461626eac4c32b5b0a197909c81b62e7c8269 (patch) | |
tree | e9ffe515b2235a58f2bc79e2ae3ef239be22af9e | |
parent | 0fc9cf11f84797e28168fbbc1d63a72fc50b7608 (diff) | |
download | newlib-a9c461626eac4c32b5b0a197909c81b62e7c8269.zip newlib-a9c461626eac4c32b5b0a197909c81b62e7c8269.tar.gz newlib-a9c461626eac4c32b5b0a197909c81b62e7c8269.tar.bz2 |
* cygthread.cc (cygthread::detach): Fix debugging output.
* dcrt0.cc (dll_crt0_1): Create signal_arrived early -- before any filename
manipulation.
* sigproc.cc (sigproc_init): Don't create signal_arrived here.
* fork.cc (fork_child): Ditto.
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/cygthread.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/fork.cc | 3 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.h | 1 |
6 files changed, 12 insertions, 6 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 574ca7d..e9c3827 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2005-06-15 Christopher Faylor <cgf@timesys.com> + + * cygthread.cc (cygthread::detach): Fix debugging output. + * dcrt0.cc (dll_crt0_1): Create signal_arrived early -- before any + filename manipulation. + * sigproc.cc (sigproc_init): Don't create signal_arrived here. + * fork.cc (fork_child): Ditto. + 2005-06-14 Christopher Faylor <cgf@timesys.com> * path.cc (path_conv::check): Always reset to FH_FS when component != 0 diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc index 8960868..f96908c 100644 --- a/winsup/cygwin/cygthread.cc +++ b/winsup/cygwin/cygthread.cc @@ -353,7 +353,7 @@ cygthread::detach (HANDLE sigwait) case WAIT_TIMEOUT: break; default: - system_printf ("%s handle %p is bad", j ? "semaphore" : "signal_arrived", w4[j]); + system_printf ("%s handle %p is bad", (j ? "signal_arrived" : "semaphore"), w4[j]); break; } api_fatal ("exiting on fatal error"); diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index ea0edbd..b119ba2 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -743,6 +743,8 @@ dll_crt0_1 (char *) strace.microseconds (); #endif + create_signal_arrived (); + /* Initialize debug muto, if DLL is built with --enable-debugging. Need to do this before any helper threads start. */ debug_init (); diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index 5ecd3bb..504af29 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -158,7 +158,6 @@ fork_child (HANDLE& hParent, dll *&first_dll, bool& load_dlls) { extern void fixup_hooks_after_fork (); extern void fixup_timers_after_fork (); - extern void __stdcall create_signal_arrived (); debug_printf ("child is running. pid %d, ppid %d, stack here %p", myself->pid, myself->ppid, __builtin_frame_address (0)); @@ -204,8 +203,6 @@ fork_child (HANDLE& hParent, dll *&first_dll, bool& load_dlls) if (fixup_mmaps_after_fork (hParent)) api_fatal ("recreate_mmaps_after_fork_failed"); - create_signal_arrived (); - #ifdef USE_SERVER /* Incredible but true: If we use sockets and SYSV IPC shared memory, there's a good chance that a duplicated socket in the child occupies diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 3e3b519..758bd52 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -490,8 +490,6 @@ sigproc_init () */ sync_proc_subproc.init ("sync_proc_subproc"); - create_signal_arrived (); - hwait_sig = new cygthread (wait_sig, cygself, "sig"); hwait_sig->zap_h (); diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h index a4e8a71..a5b9a54 100644 --- a/winsup/cygwin/sigproc.h +++ b/winsup/cygwin/sigproc.h @@ -79,6 +79,7 @@ int __stdcall sig_send (_pinfo *, int) __attribute__ ((regparm (2))); void __stdcall signal_fixup_after_exec (); void __stdcall wait_for_sigthread (); void __stdcall sigalloc (); +void __stdcall create_signal_arrived (); int kill_pgrp (pid_t, siginfo_t&); int killsys (pid_t, int); |