summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/term/term.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/util/term/term.c b/util/term/term.c
index 8478b74c9..54924c0e1 100644
--- a/util/term/term.c
+++ b/util/term/term.c
@@ -155,16 +155,15 @@ readwrite(int nfd)
if (nfd == -1)
return;
- FD_ZERO(&read_fds);
-
- FD_SET(wfd, &read_fds);
- FD_SET(nfd, &read_fds);
max_fd = nfd + 1;
- timeout.tv_sec = 1;
- timeout.tv_usec = 0;
-
while (1) {
+ FD_ZERO(&read_fds);
+ FD_SET(wfd, &read_fds);
+ FD_SET(nfd, &read_fds);
+ timeout.tv_sec = 1;
+ timeout.tv_usec = 0;
+
n = select(max_fd, &read_fds, NULL, NULL, &timeout);
if (n < 0) {
close(nfd);
@@ -174,7 +173,7 @@ readwrite(int nfd)
if (n == 0) {
if (read(nfd, buf, 0) < 0)
return;
- goto setup_select;
+ continue;
}
if (read(nfd, buf, 0) < 0)
@@ -218,12 +217,6 @@ readwrite(int nfd)
return;
}
}
-setup_select:
- FD_ZERO(&read_fds);
- FD_SET(wfd, &read_fds);
- FD_SET(nfd, &read_fds);
- timeout.tv_sec = 1;
- timeout.tv_usec = 0;
} // while
}