Bruno Haible wrote: > Jim Meyering wrote: >> > + /* Interix 3.5 has a bug: it does not support nfds == 0. */ >> > + if (nfds == 0) >> > + { >> > + nfds = 1; >> > + rfds = NULL; >> > + wfds = NULL; >> > + xfds = NULL; >> > + } >> >> Did you consider doing the above only when all three input pointers >> are NULL? > > No, I didn't. According to POSIX > select (0, rfds, wfds, xfds, timeout) is supposed to be equivalent to > select (0, NULL, NULL, NULL, timeout) and supposed to be equivalent to > select (n, NULL, NULL, NULL, timeout) for any n > 0. So, on POSIX systems, > this transformation is correct, and on Interix, Markus Duft said that he > verified that changing nfds from 0 to 1 made the problem go away.
I agree. Next time I'll read the spec _first_ ;-)