Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Jan 2016 10:07:47 +0100
From:      Gary Jennejohn <gljennjohn@gmail.com>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Boris Astardzhiev <boris.astardzhiev@gmail.com>, threads@freebsd.org, Bruce Evans <brde@optusnet.com.au>, net@freebsd.org
Subject:   Re: Does FreeBSD have sendmmsg or recvmmsg system calls?
Message-ID:  <20160124100747.551f8e3f@ernst.home>
In-Reply-To: <20160124050634.GS3942@kib.kiev.ua>
References:  <20160117211853.GA37847@stack.nl> <20160118044826.GS3942@kib.kiev.ua> <CAP=KkTy3J=k7hokGhohcGXv%2BWLnaxJmiAPxqmX9FHt7k0=Dp7Q@mail.gmail.com> <20160118140811.GW3942@kib.kiev.ua> <CAP=KkTzLCOnJVqt5F3ZuuZUiwkmWcne2Ynpi6-daE2jTzSBtfw@mail.gmail.com> <20160120073154.GB3942@kib.kiev.ua> <CAP=KkTx3dAUuSBrJiwNAAe%2BhHSG4j5Qp7sAcgtOgmVi8a12k1A@mail.gmail.com> <20160121093509.GK3942@kib.kiev.ua> <20160121233040.E1864@besplex.bde.org> <CAP=KkTw=ML=oPo2OgFfmor_nsL3om6HvmTQjKNMrOiU_dmWc2g@mail.gmail.com> <20160124050634.GS3942@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 24 Jan 2016 07:06:34 +0200
Konstantin Belousov <kostikbel@gmail.com> wrote:

[delete irrelevant parts of the patch]

> > +	rcvd = 1;
> > +	for (i = rcvd; i < vlen; i++) {  
> i = rcvd = 1; ... i++, rcvd++ ?
> 
> > +		ret = __sys_recvmsg(s, &msgvec[i].msg_hdr, flags);
> > +		if (ret == -1) {
> > +			if (rcvd != 0) {
> > +				/* We've received messages. Let caller know. */

> > +				return (rcvd);
> > +			}
> > +			return (ret);
> > +		}
> > +

This seems wrong.  rcvd is initialized to 1 so that the check for
rcvd != 0 can never be false.  We already successfully called
__sys_recvmsg() just above the loop, so why not simplify the
code by doing

	if (ret == -1)
		return (rcvd);

-- 
Gary Jennejohn (gj@)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160124100747.551f8e3f>