* exceptions.cc (ctrl_c_handler): Only send SIGINT when we have a controlling
terminal and we are the head of the process group.
This commit is contained in:
parent
615a70a882
commit
d72a655937
|
@ -1,3 +1,8 @@
|
|||
Tue Sep 4 22:42:13 2001 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* exceptions.cc (ctrl_c_handler): Only send SIGINT when we have a
|
||||
controlling terminal and we are the head of the process group.
|
||||
|
||||
Tue Sep 4 16:48:14 2001 Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
* thread.cc (InterlockedExchangePointer): Don't define if it already
|
||||
|
|
|
@ -912,11 +912,8 @@ ctrl_c_handler (DWORD type)
|
|||
tty_min *t = cygwin_shared->tty.get_tty (myself->ctty);
|
||||
/* Ignore this if we're not the process group lead since it should be handled
|
||||
*by* the process group leader. */
|
||||
if (t->getpgid () && pid_exists (t->getpgid ()) &&
|
||||
(t->getpgid () != myself->pid ||
|
||||
(GetTickCount () - t->last_ctrl_c) < MIN_CTRL_C_SLOP))
|
||||
return TRUE;
|
||||
else
|
||||
if (myself->ctty != -1 && t->getpgid () == myself->pid &&
|
||||
(GetTickCount () - t->last_ctrl_c) >= MIN_CTRL_C_SLOP)
|
||||
/* Otherwise we just send a SIGINT to the process group and return TRUE (to indicate
|
||||
that we have handled the signal). At this point, type should be
|
||||
a CTRL_C_EVENT or CTRL_BREAK_EVENT. */
|
||||
|
@ -926,6 +923,7 @@ ctrl_c_handler (DWORD type)
|
|||
t->last_ctrl_c = GetTickCount ();
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Set the signal mask for this process.
|
||||
|
|
Loading…
Reference in New Issue