diff options
author | Christopher Faylor <me@cgf.cx> | 2013-01-19 05:57:06 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2013-01-19 05:57:06 +0000 |
commit | d5c977948bb2c66852d7a79a04484aa5c0eecaa4 (patch) | |
tree | 4ebe4eef4dd87d4e4ac58f7e503638cc17e58ff5 | |
parent | 5d858e49eb8f6f28c60d2d61e02999fe05753be2 (diff) | |
download | newlib-d5c977948bb2c66852d7a79a04484aa5c0eecaa4.zip newlib-d5c977948bb2c66852d7a79a04484aa5c0eecaa4.tar.gz newlib-d5c977948bb2c66852d7a79a04484aa5c0eecaa4.tar.bz2 |
* exceptions.cc (ctrl_c_handler): Remove special-case handler for
"cygwin_finished_initializing".
* sigproc.cc (exit_thread): Undefine ExitThread earlier to avoid recursion on
error return.
-rw-r--r-- | winsup/cygwin/ChangeLog | 7 | ||||
-rw-r--r-- | winsup/cygwin/exceptions.cc | 8 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.cc | 2 |
3 files changed, 8 insertions, 9 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e43b049..cd2f45a 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2013-01-19 Christopher Faylor <me.cygwin2013@cgf.cx> + + * exceptions.cc (ctrl_c_handler): Remove special-case handler for + "cygwin_finished_initializing". + * sigproc.cc (exit_thread): Undefine ExitThread earlier to avoid + recursion on error return. + 2013-01-18 Corinna Vinschen <corinna@vinschen.de> * errno.cc (errmap): Map ERROR_LOCK_VIOLATION to EBUSY. diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index c8bf6d2..caccb8f 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -875,14 +875,6 @@ ctrl_c_handler (DWORD type) { static bool saw_close; - if (!cygwin_finished_initializing) - { - if (myself->cygstarted) /* Was this process created by a cygwin process? */ - return TRUE; /* Yes. Let the parent eventually handle CTRL-C issues. */ - debug_printf ("exiting with status %p", STATUS_CONTROL_C_EXIT); - ExitProcess (STATUS_CONTROL_C_EXIT); - } - /* Remove early or we could overthrow the threadlist in cygheap. Deleting this line causes ash to SEGV if CTRL-C is hit repeatedly. I am not exactly sure why that is. Maybe it's just because this diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index fc56317..f1d2998 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -471,6 +471,7 @@ sigproc_init () void exit_thread (DWORD res) { +# undef ExitThread sigfillset (&_my_tls.sigmask); /* No signals wanted */ lock_process for_now; /* May block indefinitely when exiting. */ if (exit_state) @@ -496,7 +497,6 @@ exit_thread (DWORD res) siginfo_t si = {__SIGTHREADEXIT, SI_KERNEL}; si.si_cyg = h; sig_send (myself_nowait, si, &_my_tls); -# undef ExitThread ExitThread (0); } |