* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Send __SIGSETPGRP

pseudo signal to process group instead of just calling
	init_console_handler.
	* sigproc.cc (wait_sig): Call init_console_handler here on __SIGSETPGRP
	signal.
	* sigproc.h (__SIGSETPGRP): Define.
This commit is contained in:
Corinna Vinschen 2011-10-06 19:47:45 +00:00
parent efe716bb8e
commit 852908e82d
4 changed files with 16 additions and 2 deletions

View File

@ -1,3 +1,12 @@
2011-10-06 Corinna Vinschen <corinna@vinschen.de>
* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Send __SIGSETPGRP
pseudo signal to process group instead of just calling
init_console_handler.
* sigproc.cc (wait_sig): Call init_console_handler here on __SIGSETPGRP
signal.
* sigproc.h (__SIGSETPGRP): Define.
2011-10-06 Christian Franke <franke@computer.org>
* include/cygwin/wait.h: Use new __wait_status_to_int()

View File

@ -78,7 +78,8 @@ fhandler_termios::tcsetpgrp (const pid_t pgid)
{
case bg_ok:
tc ()->setpgid (pgid);
init_console_handler (tc ()->is_console);
if (tc ()->is_console)
tc ()->kill_pgrp (__SIGSETPGRP);
res = 0;
break;
case bg_signalled:

View File

@ -1225,6 +1225,9 @@ wait_sig (VOID *)
my_sendsig = NULL;
sigproc_printf ("saw __SIGEXIT");
break; /* handle below */
case __SIGSETPGRP:
init_console_handler (true);
break;
default:
if (pack.si.si_signo < 0)
sig_clear (-pack.si.si_signo);

View File

@ -23,7 +23,8 @@ enum
__SIGFLUSHFAST = -(NSIG + 6),
__SIGHOLD = -(NSIG + 7),
__SIGNOHOLD = -(NSIG + 8),
__SIGEXIT = -(NSIG + 9)
__SIGEXIT = -(NSIG + 9),
__SIGSETPGRP = -(NSIG + 10)
};
#endif