* ser-unix.c (wait_for): Initialize the FD_SET before every select

call.
(ser_unix_wait_for): Ditto.
This commit is contained in:
Andrew Cagney 2000-12-02 14:56:20 +00:00
parent b045c3f9e7
commit ab5ba170e9
2 changed files with 46 additions and 37 deletions

View File

@ -1,3 +1,9 @@
Sun Dec 3 01:54:49 2000 Andrew Cagney <cagney@b1.cygnus.com>
* ser-unix.c (wait_for): Initialize the FD_SET before every select
call.
(ser_unix_wait_for): Ditto.
Sun Dec 3 01:01:02 2000 Andrew Cagney <cagney@b1.cygnus.com>
* Makefile.in (varobj.o): Delete special .c.o rule supressing

View File

@ -435,21 +435,22 @@ static int
wait_for (serial_t scb, int timeout)
{
#ifdef HAVE_SGTTY
while (1)
{
struct timeval tv;
fd_set readfds;
int numfds;
FD_ZERO (&readfds);
/* NOTE: Some OS's can scramble the READFDS when the select()
call fails (ex the kernel with Red Hat 5.2). Initialize all
arguments before each call. */
tv.tv_sec = timeout;
tv.tv_usec = 0;
FD_ZERO (&readfds);
FD_SET (scb->fd, &readfds);
while (1)
{
int numfds;
if (timeout >= 0)
numfds = select (scb->fd + 1, &readfds, 0, 0, &tv);
else
@ -465,7 +466,6 @@ wait_for (serial_t scb, int timeout)
return 0;
}
}
#endif /* HAVE_SGTTY */
#if defined HAVE_TERMIO || defined HAVE_TERMIOS
@ -857,22 +857,25 @@ ser_unix_nop_raw (serial_t scb)
int
ser_unix_wait_for (serial_t scb, int timeout)
{
while (1)
{
int numfds;
struct timeval tv;
fd_set readfds, exceptfds;
FD_ZERO (&readfds);
FD_ZERO (&exceptfds);
/* NOTE: Some OS's can scramble the READFDS when the select()
call fails (ex the kernel with Red Hat 5.2). Initialize all
arguments before each call. */
tv.tv_sec = timeout;
tv.tv_usec = 0;
FD_ZERO (&readfds);
FD_ZERO (&exceptfds);
FD_SET (scb->fd, &readfds);
FD_SET (scb->fd, &exceptfds);
while (1)
{
if (timeout >= 0)
numfds = select (scb->fd + 1, &readfds, 0, &exceptfds, &tv);
else