Does FreeBSD have sendmmsg or recvmmsg system calls?

Daniel Eischen deischen at freebsd.org
Tue Jan 26 22:47:00 UTC 2016


On Tue, 26 Jan 2016, Gary Jennejohn wrote:

> On Tue, 26 Jan 2016 09:06:39 -0800
> Luigi Rizzo <rizzo at iet.unipi.it> wrote:
>
>> On Tue, Jan 26, 2016 at 5:40 AM, Konstantin Belousov
>> <kostikbel at 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.

-- 
DE


More information about the freebsd-net mailing list