On Sat, Mar 01, 2003 at 11:21:10PM +0100, Raphael Barabas wrote:
reason: in IO.c, function IO_submit, filedescriptor-flag close_on_exec is not set the right way (not at all). on solaris, as a direct result, non-blocking io will accidentally be handled via O_NDELAY instead of O_NONBLOCKING, resulting in an endless loop.
looks like i shot too fast. i forgot to grep the rest of the source for FD_CLOEXEC: IO/IO.c:533: O_NONBLOCK | FD_CLOEXEC | fcntl(r_io->FD, F_GETFL)); IO/http.c:267: O_NONBLOCK | FD_CLOEXEC | fcntl(S->SockFD, F_GETFL)); cookies.c:115: fcntl(fileno(F_in), F_SETFL, FD_CLOEXEC | fcntl(fileno(F_in), F_GETFL)); prefs.c:257: fcntl(fd, F_SETFL, FD_CLOEXEC | fcntl(fd, F_GETFL)); of course all of these need to be fixed. FD_CLOEXEC is set via F_SETFD, not F_SETFL. by now i also read the developer info on the webpage. i'll behave now, file a bugreport and mail a diff -pru to jcid@softhome.net ;) regards, raphael