diff options
author | Christopher Faylor <me@cgf.cx> | 2002-02-22 19:33:41 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2002-02-22 19:33:41 +0000 |
commit | 083abe54283b1c247e746f06849f7995abb236c4 (patch) | |
tree | ae5b3c2f9728e69917f1cdf707706aa3ec6797ae /winsup/cygwin/fhandler_termios.cc | |
parent | a6790c5f113e0fa5daf45d0815876509cd7f546b (diff) | |
download | cygnal-083abe54283b1c247e746f06849f7995abb236c4.tar.gz cygnal-083abe54283b1c247e746f06849f7995abb236c4.tar.bz2 cygnal-083abe54283b1c247e746f06849f7995abb236c4.zip |
* sync.h (new_muto): Just accept an argument which denotes the name of the
muto. Use this argument to construct static storage.
* cygheap.cc (cygheap_init): Reflect above change.
* exceptions.cc (events_init): Ditto.
* malloc.cc (malloc_init): Ditto.
* path.cc (cwdstuff::init): Ditto.
* cygheap.h (cwdstuff): Change name of lock element to make it less generic.
* path.cc (cwdstuff::get_hash): Ditto.
(cwdstuff::get_initial): Ditto.
(cwdstuff::set): Ditto.
(cwdstuff::get): Ditto.
* sigproc.cc (proc_subproc): Ditto.
* debug.cc (lock_debug): Change to method. Use method rather than macro
throughout.
* tty.h (tty_min::kill_pgrp): Declare new method.
* fhandler_termios.cc (tty_min::kill_pgrp): New method.
(fhandler_termios::line_edit): Use new method for killing process.
* dcrt0.cc (do_exit): Ditto.
* dtable.cc (dtable::get_debugger_info): New method for inheriting dtable info
from a debugger.
* tty.cc (tty_init): Attempt to grab file handle info from parent debugger, if
appropriate. # dtable.cc (dtable::stdio_init): Make this a method.
(dtable::init_std_file_from_handle): Don't set fd unless it's not open.
(dtable::build_fhandler_from_name): Move name setting to
dtable::build_fhandler.
(dtable::build_fhandler): Add win32 name parameter.
* dcrt0.cc (dll_crt0_1): Change to use dtable stdio_init.
* dtable.h (dtable): Reflect build_fhandler parameter change.
* mmap.cc (mmap_record::alloc_fh): Don't set name parameter in build_fhandler.
* net.cc (fdsock): Remove set_name call since it is now handled by
build_fhandler.
* sigproc.cc (proc_subproc): Release muto as early as possible.
Diffstat (limited to 'winsup/cygwin/fhandler_termios.cc')
-rw-r--r-- | winsup/cygwin/fhandler_termios.cc | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/winsup/cygwin/fhandler_termios.cc b/winsup/cygwin/fhandler_termios.cc index 4a8c23862..2407238e7 100644 --- a/winsup/cygwin/fhandler_termios.cc +++ b/winsup/cygwin/fhandler_termios.cc @@ -83,6 +83,25 @@ fhandler_termios::tcgetpgrp () } void +tty_min::kill_pgrp (int sig) +{ + int killself = 0; + winpids pids; + for (unsigned i = 0; i < pids.npids; i++) + { + _pinfo *p = pids[i]; + if (!proc_exists (p) || p->ctty != ntty || p->pgid != pgid) + continue; + if (p == myself) + killself++; + else + (void) sig_send (p, sig); + } + if (killself) + sig_send (myself, sig); +} + +void tty_min::set_ctty (int ttynum, int flags) { if ((myself->ctty < 0 || myself->ctty == ttynum) && !(flags & O_NOCTTY)) @@ -218,7 +237,7 @@ fhandler_termios::line_edit (const char *rptr, int nread, int always_accept) termios_printf ("got interrupt %d, sending signal %d", c, sig); eat_readahead (-1); - kill_pgrp (tc->getpgid (), sig); + tc->kill_pgrp (sig); tc->ti.c_lflag &= ~FLUSHO; sawsig = 1; goto restart_output; |