aboutsummaryrefslogtreecommitdiff
path: root/gdb/ser-unix.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1993-06-26 00:22:30 +0000
committerStu Grossman <grossman@cygnus>1993-06-26 00:22:30 +0000
commita037b21e7588263dba78ac0b1651abd56237ca93 (patch)
tree7c35de6074a134ee3c08e439f9b4c3d33c6124dc /gdb/ser-unix.c
parent2685ead7d6ccad3988f6fbffbc3a96ebada3d4dc (diff)
downloadgdb-a037b21e7588263dba78ac0b1651abd56237ca93.zip
gdb-a037b21e7588263dba78ac0b1651abd56237ca93.tar.gz
gdb-a037b21e7588263dba78ac0b1651abd56237ca93.tar.bz2
* remote.c: Add arg names to prototypes, in a modest effort at
clarification. Also add prototypes for some new functions. * (remote_wait): Better error reporting for 'T' responses. * ser-go32.c (strncasecmp): Make str1 & str2 be const. * (dos_async_init): Make usage message reflect requested port #. * ser-tcp.c (tcp_open): Terminate hostname properly to prevent random hostname lookup failures. Add nicer message for unknown host error. (wait_for): Wake up in case of exceptions. Also, restart select() if we got EINTR. * ser-unix.c (wait_for): Restart select() if we got EINTR. * serial.c: (serial_close): Clean up code.
Diffstat (limited to 'gdb/ser-unix.c')
-rw-r--r--gdb/ser-unix.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
index 6c142e7..248496e 100644
--- a/gdb/ser-unix.c
+++ b/gdb/ser-unix.c
@@ -212,18 +212,23 @@ wait_for(scb, timeout)
FD_SET(scb->fd, &readfds);
- if (timeout >= 0)
- numfds = select(scb->fd+1, &readfds, 0, 0, &tv);
- else
- numfds = select(scb->fd+1, &readfds, 0, 0, 0);
-
- if (numfds <= 0)
- if (numfds == 0)
- return SERIAL_TIMEOUT;
- else
- return SERIAL_ERROR; /* Got an error from select or poll */
-
- return 0;
+ while (1)
+ {
+ if (timeout >= 0)
+ numfds = select(scb->fd+1, &readfds, 0, 0, &tv);
+ else
+ numfds = select(scb->fd+1, &readfds, 0, 0, 0);
+
+ if (numfds <= 0)
+ if (numfds == 0)
+ return SERIAL_TIMEOUT;
+ else if (errno == EINTR)
+ continue;
+ else
+ return SERIAL_ERROR; /* Got an error from select or poll */
+
+ return 0;
+ }
#endif /* HAVE_SGTTY */