On Tue, 24 Jul 2001, Justin Erenkrantz wrote:
> On Tue, Jul 24, 2001 at 06:07:03PM -0400, Greg Ames wrote:
> > * an assert() trap, also in apr_sendfile, for the problem which is
> > responsible for the most core dumps on daedalus (APR_SUCCESS + 0 bytes
> > sent - wtf??), and
>
> Could this be from sendfile returning EAGAIN?
>
> When testing it on Solaris, sendfilev would return EAGAIN and 0 bytes
> sent if the socket isn't ready yet. (FreeBSD has the closest
> semantics to Solaris as any others out there.) -- justin
Hmm - are you sure you do not get an EPIPE in that case ? Peraps it should
be
/* FreeBSD's sendfile can return -1/EAGAIN even if it
* sent bytes. Sanitize the result so we get normal EAGAIN
* semantics w.r.t. bytes sent.
*/
if ((rv == -1) &&
((errno == EAGAIN) || (errno == EPIPE )) &&
(nbytes))
{
rv = 0;
}
Dw