* 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:
parent
5d858e49eb
commit
d5c977948b
|
@ -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>
|
2013-01-18 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* errno.cc (errmap): Map ERROR_LOCK_VIOLATION to EBUSY.
|
* errno.cc (errmap): Map ERROR_LOCK_VIOLATION to EBUSY.
|
||||||
|
|
|
@ -875,14 +875,6 @@ ctrl_c_handler (DWORD type)
|
||||||
{
|
{
|
||||||
static bool saw_close;
|
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.
|
/* Remove early or we could overthrow the threadlist in cygheap.
|
||||||
Deleting this line causes ash to SEGV if CTRL-C is hit repeatedly.
|
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
|
I am not exactly sure why that is. Maybe it's just because this
|
||||||
|
|
|
@ -471,6 +471,7 @@ sigproc_init ()
|
||||||
void
|
void
|
||||||
exit_thread (DWORD res)
|
exit_thread (DWORD res)
|
||||||
{
|
{
|
||||||
|
# undef ExitThread
|
||||||
sigfillset (&_my_tls.sigmask); /* No signals wanted */
|
sigfillset (&_my_tls.sigmask); /* No signals wanted */
|
||||||
lock_process for_now; /* May block indefinitely when exiting. */
|
lock_process for_now; /* May block indefinitely when exiting. */
|
||||||
if (exit_state)
|
if (exit_state)
|
||||||
|
@ -496,7 +497,6 @@ exit_thread (DWORD res)
|
||||||
siginfo_t si = {__SIGTHREADEXIT, SI_KERNEL};
|
siginfo_t si = {__SIGTHREADEXIT, SI_KERNEL};
|
||||||
si.si_cyg = h;
|
si.si_cyg = h;
|
||||||
sig_send (myself_nowait, si, &_my_tls);
|
sig_send (myself_nowait, si, &_my_tls);
|
||||||
# undef ExitThread
|
|
||||||
ExitThread (0);
|
ExitThread (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue