On Mon, 21 Apr 2008 17:49:35 EDT erik quanstrom <[EMAIL PROTECTED]> wrote:
> > I meant this:
> > /* Pull out data to send */
> > bp = nil;
> > if(dsize != 0) {
> > bp = qcopy(s->wq, dsize, sent);
> > if(BLEN(bp) != dsize) {
> > seg.flags |= FIN;
> > dsize--;
> > }
> > if(sent+dsize == sndcnt)
> > seg.flags |= PSH;
> > }
> >
> > Seems clearer to me. And equivalent! I have been running
> > with this change since last Thursday. I don't stress my plan9
> > machine all that much but replica pulls, ftp, web browsing,
> > nfs etc. have worked fine.
>
> i think they are not equivalent with these values
>
> BLEN(bp) != dsize
> dsize == 1
> sent+0 == sndcnt
I don't think all three conditions can be true. dsize is set
to ssize, ssize is initialized to sndcnt - sent and after
that it can only decrease. So if dsize is 1, sndcnt - send
must be at least 1.