diff options
author | Stu Grossman <grossman@cygnus> | 1993-06-26 00:22:30 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1993-06-26 00:22:30 +0000 |
commit | a037b21e7588263dba78ac0b1651abd56237ca93 (patch) | |
tree | 7c35de6074a134ee3c08e439f9b4c3d33c6124dc /gdb/ser-unix.c | |
parent | 2685ead7d6ccad3988f6fbffbc3a96ebada3d4dc (diff) | |
download | gdb-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.c | 29 |
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 */ |