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