OSDN Git Service

* cygthread.cc (cygthread::detach): Fix debugging output.
authorcgf <cgf>
Wed, 15 Jun 2005 22:50:31 +0000 (22:50 +0000)
committercgf <cgf>
Wed, 15 Jun 2005 22:50:31 +0000 (22:50 +0000)
* 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.

winsup/cygwin/ChangeLog
winsup/cygwin/cygthread.cc
winsup/cygwin/dcrt0.cc
winsup/cygwin/fork.cc
winsup/cygwin/sigproc.cc
winsup/cygwin/sigproc.h

index 574ca7d..e9c3827 100644 (file)
@@ -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
index 8960868..f96908c 100644 (file)
@@ -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");
index ea0edbd..b119ba2 100644 (file)
@@ -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 ();
index 5ecd3bb..504af29 100644 (file)
@@ -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
index 3e3b519..758bd52 100644 (file)
@@ -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 ();
 
index a4e8a71..a5b9a54 100644 (file)
@@ -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);