This is the same one you already committed right? Not a further one on top
of that?

That said,+1 for not bothering to  back patch it.

/Magnus

On Sat, Apr 7, 2018, 00:39 Andres Freund <and...@anarazel.de> wrote:

> Hi,
>
> As Daniel pointed out in:
> https://postgr.es/m/fb948276-7b32-4b77-83e6-d00167f8e...@yesql.se the
> pg_atomic_flag fallback implementation is broken.  That has gone
> unnoticed because the fallback implementation wasn't testable until now:
> -   /* ---
> -    * Can't run the test under the semaphore emulation, it doesn't handle
> -    * checking two edge cases well:
> -    * - pg_atomic_unlocked_test_flag() always returns true
> -    * - locking a already locked flag blocks
> -    * it seems better to not test the semaphore fallback here, than weaken
> -    * the checks for the other cases. The semaphore code will be the same
> -    * everywhere, whereas the efficient implementations wont.
> -    * ---
> -    */
> and flags weren't used until recently.
>
> The attached fixes the bug and removes the edge-cases by storing a value
> separate from the semaphore. I should have done that from the start.
> This is an ABI break, but given the fallback didn't work at all, I don't
> think that's a problem for backporting.
>
> Fix attached. Comments?
>
> Greetings,
>
> Andres Freund
>

Reply via email to