qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] scsi-generic: Simplify error handling code


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH] scsi-generic: Simplify error handling code
Date: Thu, 18 Jan 2018 12:55:02 -0300

On Thu, Jan 18, 2018 at 9:03 AM, Paolo Bonzini <address@hidden> wrote:
> On 18/01/2018 12:21, Philippe Mathieu-Daudé wrote:
>>> I'm not a fan of bool return types, in general (because "!" is often
>>> success while "< 0" is failure) and especially when there is an Error**;
>>> I disagree with commit 9d3b155186.  But the function is not in an area I
>>> maintain so I'm queuing this, thanks.
>> Do you prefer "if (local_err)" and "if (errp && *errp)" ?
>
> The latter is wrong.  I do prefer

Ok so my 253674981e24 missed that train too.

>
>     if (local_err) {
>         error_propagate(errp, local_err);
>         return;
>     }
>
> or maybe (but only if there is a meaning to a zero vs. positive return
> value, or if errno is an important part of the returned Error *)
>
>     ret = f(..., errp);
>     if (ret < 0) {
>         return;
>     }
>
>> I wondered once if a macro might improve this pattern but thought the
>> code would get more obscure.
>
> Eduardo had a series to avoid error_propagate, where NULL was replaced
> by a (non-NULL) IGNORED_ERRORS macro.  Then you could do:
>
>     f(..., errp);
>     if (error_is_set(errp)) {
>         return;
>     }
>
> See here:
> https://lists.gnu.org/archive/html/qemu-devel/2017-06/msg03139.html

This series never hit /master!

Reading the thread I'm not sure what was the expected outcome.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]