* 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.
This commit is contained in:
Christopher Faylor 2013-01-19 05:57:06 +00:00
parent 5d858e49eb
commit d5c977948b
3 changed files with 8 additions and 9 deletions

View File

@ -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.

View File

@ -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

View File

@ -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);
}