Hi Kirill,

On Sat, 29 Nov 2008, Kirill K. Smirnov wrote:

>> +        ret = select(pipefd + 1, &readfds, &writefds, &errorfds, NULL);
> Passing NULL instead of &writefds in this case is better, IMO. It is not used
> anyway.

Ok

> I strongly believe that errorfds parameter os select() is useful for sockets
> only, not for stdio (I am not sure whether it is true for Darwin). Please,
> check this.

Yes, that seems to be the case on Linux at least, but I didn't really find 
any definitive on the issue on Darwin. However, an error on the fd should 
trigger it in readfds anyway, so I guess errorfds can be removed 
completely.

In the patch, I had also forgotten to add proper includes for select, but 
it worked fine on both Linux and Darwin using the existing includes. The 
linux manpage says this about the include:

        /* According to POSIX.1-2001 */
        #include <sys/select.h>

        /* According to earlier standards */
        #include <sys/time.h>
        #include <sys/types.h>
        #include <unistd.h>

The BSD based manpage in Darwin only mentions sys/select.h. Should I add a 
check for sys/select.h in the configure script and conditionally included 
it, surrounded by HAVE_SYS_SELECT_H? Or would sys/time.h, sys/types.h and 
unistd.h be enough to consider it reasonably compatible?

After fixing this, I guess I should just submit a new patch against the 
current upstream git (not against the old patched version), with the same 
commit message, replacing the old one?

// Martin


Reply via email to