Date: Wed, 27 Jan 2016 01:31:45 +0100 From: Gary Jennejohn <gljennjohn@gmail.com> To: Daniel Eischen <deischen@freebsd.org> Cc: Luigi Rizzo <rizzo@iet.unipi.it>, threads@freebsd.org, Boris Astardzhiev <boris.astardzhiev@gmail.com>, "freebsd-net@freebsd.org" <net@freebsd.org> Subject: Re: Does FreeBSD have sendmmsg or recvmmsg system calls? Message-ID: <20160127013145.36f2aaef@ernst.home> In-Reply-To: <Pine.GSO.4.64.1601261743450.12995@sea.ntplx.net> References: <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> <20160124100747.551f8e3f@ernst.home> <CAP=KkTyHG9Rb%2BnrDC1TDxzjUQFca9NkVp8Suo1c_-C00RUtkuQ@mail.gmail.com> <20160126134005.GD3942@kib.kiev.ua> <CA%2BhQ2%2BivWYJMDUwzdZGW88-mWzSVfPzX212sOFVmxxN0hpZ%2BQQ@mail.gmail.com> <20160126182543.64050678@ernst.home> <Pine.GSO.4.64.1601261743450.12995@sea.ntplx.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 26 Jan 2016 17:46:52 -0500 (EST)
Daniel Eischen <deischen@freebsd.org> wrote:
> On Tue, 26 Jan 2016, Gary Jennejohn wrote:
>
> > On Tue, 26 Jan 2016 09:06:39 -0800
> > Luigi Rizzo <rizzo@iet.unipi.it> wrote:
> >
> >> On Tue, Jan 26, 2016 at 5:40 AM, Konstantin Belousov
> >> <kostikbel@gmail.com> wrote:
> >>> On Mon, Jan 25, 2016 at 11:22:13AM +0200, Boris Astardzhiev wrote:
> >>>> +ssize_t
> >>>> +recvmmsg(int s, struct mmsghdr *__restrict msgvec, size_t vlen, int flags,
> >>>> + const struct timespec *__restrict timeout)
> >>>> +{
> >>>> + size_t i, rcvd;
> >>>> + ssize_t ret;
> >>>> +
> >>>> + if (timeout != NULL) {
> >>>> + fd_set fds;
> >>>> + int res;
> >>> Please move all local definitions to the beginning of the function.
> >>
> >> This style recommendation was from 30 years ago and is
> >> bad programming practice, as it tends to complicate analysis
> >> for the human and increase the chance of improper usage of
> >> variables.
> >>
> >> We should move away from this for new code.
> >>
> >
> > Really? I personally find having all variables grouped together
> > much easier to understand. Stumbling across declarations in the
> > middle of the code in a for-loop, for example, takes me by surprise.
> >
> > I also greatly dislike initializing variables in their declarations.
> >
> > Maybe I'm just old fashioned since I have been writing C-code for
> > more than 30 years.
>
> +1
>
> Probably should be discouraged, but allowed on a case-by-case
> basis. One could argue that if you need to declaration blocks
> in the middle of code, then that code is too complex and should
> be broken out into a separate function.
>
Right.
And code like this
int func(void)
{
int baz, zot;
[some more code]
if (zot < 5)
{
int baz = 3;
[more code]
}
[some more code]
}
is even worse. The compiler (clang) seems to consider this to
merely be a reinitialization of baz, but a human might be confused.
Something like for (int i = 0; i < 2; i++) is IMHO OK.
--
Gary Jennejohn
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160127013145.36f2aaef>
