ok ... WebCit doesn't have the same problem because the network listener is structured a little bit differently. In the Citadel server, we put in a call to fcntl() to set all master listening sockets to non-blocking, in order to deal with a rare situation in which select() told us about activity on the socket but accept() didn't return, thereby locking up the server until another connection arrived. This caused the individual session sockets to be set to non-blocking as well. Subsequently setting the individual session sockets back to blocking seems to have corrected the problem I was seeing on FreeBSD. I don't know why FreeBSD gives us EAGAIN on write() in some situations, where Linux and Solaris don't ... but the change does fix it. This is irrelevant for WebCit because the WebCit listener blocks on accept() instead of select() while waiting for activity.
- [Citadel Development] (no subject) Freakdog
- [Citadel Development] (no subject) WizmanG
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) dothebart
- [Citadel Development] (no subject) dothebart
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) fleeb
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) dothebart
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) fleeb
- [Citadel Development] (no subject) IGnatius T Foobar
- [Citadel Development] (no subject) fleeb
- [Citadel Development] (no subject) dothebart
- [Citadel Development] (no subject) IGnatius T Foobar