diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2011-05-05 23:43:04 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2011-05-05 23:43:04 +0400 |
commit | d8ff96389f6beb97defd285b224fead3f37398f5 (patch) | |
tree | 5246416567fc69e322ca413e0d0c11db29dbe607 /winsup/cygwin/syscalls.cc | |
parent | 23db0a41d8b178d6f3d2297834b28e015346bd43 (diff) |
* pinfo.h (class push_process_state): New class to push a process state
flag temporarily into myself->process_state.
* fhandler_console.cc (fhandler_console::read): Add push_process_state
handler.
(fhandler_console::write): Call bg_check from here. Add
push_process_state handler.
* fhandler_tty.cc (fhandler_tty_slave::write): Ditto.
(fhandler_tty_slave::read): Ditto.
(fhandler_pty_master::write): Ditto.
(fhandler_pty_master::read): Ditto.
* syscalls.cc (readv): Remove bg_check call and setting process state.
(writev): Ditto.
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index b086554c5..5585b332a 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -994,17 +994,7 @@ readv (int fd, const struct iovec *const iov, const int iovcnt) while (1) { - /* Check to see if this is a background read from a "tty", - sending a SIGTTIN, if appropriate */ - res = cfd->bg_check (SIGTTIN); - - if (res > bg_eof) - { - myself->process_state |= PID_TTYIN; - res = cfd->readv (iov, iovcnt, tot); - myself->process_state &= ~PID_TTYIN; - } - + res = cfd->readv (iov, iovcnt, tot); if (res >= 0 || get_errno () != EINTR || !_my_tls.call_signal_handler ()) break; set_errno (e); @@ -1051,14 +1041,7 @@ writev (const int fd, const struct iovec *const iov, const int iovcnt) else syscall_printf ("writev (%d, %p, %d)", fd, iov, iovcnt); - res = cfd->bg_check (SIGTTOU); - - if (res > (int) bg_eof) - { - myself->process_state |= PID_TTYOU; - res = cfd->writev (iov, iovcnt, tot); - myself->process_state &= ~PID_TTYOU; - } + res = cfd->writev (iov, iovcnt, tot); done: if (fd == 1 || fd == 2) |