diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2011-05-04 17:06:10 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2011-05-04 17:06:10 +0400 |
commit | 54e4df33a23064c542eacd7f7e3598935d9c3100 (patch) | |
tree | ead3c3c7b617828558ae5d07f66dd8c3578841e7 /winsup/cygwin/syscalls.cc | |
parent | 82fa6b929bfebd3afd8cdb39b6cf48a03ff646b7 (diff) |
* fhandler.h (class fhandler_base): Remove uninterruptible_io status
flag.
(fhandler_base::ready_for_read): Remove declaration.
(fhandler_socket::ready_for_read): Ditto.
(fhandler_pipe::ready_for_read): Ditto.
(fhandler_tty_master::is_slow): Remove.
* fhandler_console.cc (fhandler_console::open): Drop setting
uninterruptible_io.
* fhandler_serial.cc (fhandler_serial::open): Ditto.
* fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Ditto.
(fhandler_tty_master::init_console): Ditto.
* pipe.cc (fhandler_pipe::fhandler_pipe): Ditto.
(fhandler_pipe::open): Ditto.
(_pipe): Ditto.
* select.cc (fhandler_pipe::ready_for_read): Remove.
(fhandler_base::ready_for_read): Remove.
* syscalls.cc (readv): Drop unneeded wait variable. Remove entire test
which might lead to calling ready_for_read. Remove now unused label
out.
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index ee5704095..93be3ec03 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -987,19 +987,10 @@ readv (int fd, const struct iovec *const iov, const int iovcnt) break; } - DWORD wait = cfd->is_nonblocking () ? 0 : INFINITE; - /* Could block, so let user know we at least got here. */ syscall_printf ("readv (%d, %p, %d) %sblocking, sigcatchers %d", - fd, iov, iovcnt, wait ? "" : "non", sigcatchers); - - if (wait && (!cfd->is_slow () || cfd->uninterruptible_io ())) - /* no need to call ready_for_read */; - else if (!cfd->ready_for_read (fd, wait)) - { - res = -1; - goto out; - } + fd, iov, iovcnt, cfd->is_nonblocking () ? "non" : "", + sigcatchers); /* FIXME: This is not thread safe. We need some method to ensure that an fd, closed in another thread, aborts I/O @@ -1029,7 +1020,6 @@ readv (int fd, const struct iovec *const iov, const int iovcnt) myself->process_state &= ~PID_TTYIN; } - out: if (res >= 0 || get_errno () != EINTR || !_my_tls.call_signal_handler ()) break; set_errno (e); |