07.09.2020 18:34, Andy Shevchenko пишет: > On Mon, Sep 7, 2020 at 6:25 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote: >> 07.09.2020 18:05, Andy Shevchenko пишет: >>> On Mon, Sep 7, 2020 at 5:32 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote: >>>> 07.09.2020 11:10, Andy Shevchenko пишет: > > ... > >>>> Would be great if anyone could put effort into changing the default >>>> get_sync() behaviour and add get_sync_nofail(). Otherwise this will be a >>>> never ending problem. >>> >>> I didn't get this. For time being the API (yes, with its all cons) has >>> the clear usage: >>> a) don't check for errors -- you are fine >>> b) if you start checking errors, keep in mind refcounting. >>> >>> So, I don't see how nofail() can fix b) case. >>> >> >> It's a very unintuitive behaviour which none of other APIs have. I would >> never expect the refcount to be bumped in a case of error, this is a >> clear drawback of the API, IMO. > > I agree. > >> Perhaps this is not seen as a problem by >> people who have excellent memory and can easily remember about existence >> of such non-standard quirks, or by people who're touching the RPM code >> frequently. > > ...or by running coccinelle script. > Technically it shouldn't be a big problem to change the code, but I could imagine the amount of effort it will take to get the changes merged. IIRC, there was also a push back to a such change from the RPM maintainer, so there could be difficulties beyond the code changes.