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>