Re: Bring atomic flag fallback up to snuff

Поиск
Список
Период
Сортировка
От Magnus Hagander
Тема Re: Bring atomic flag fallback up to snuff
Дата
Msg-id CABUevEyW_=vbBS3gZ6F09Tj=sNoqkibH-kNyjd8zPZLHEsCimQ@mail.gmail.com
обсуждение исходный текст
Ответ на Bring atomic flag fallback up to snuff  (Andres Freund <andres@anarazel.de>)
Ответы Re: Bring atomic flag fallback up to snuff  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
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 <andres@anarazel.de> wrote:
Hi,

As Daniel pointed out in:
https://postgr.es/m/FB948276-7B32-4B77-83E6-D00167F8EEB4@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

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Erik Rijkers
Дата:
Сообщение: Re: WIP: Covering + unique indexes. (the good and the bad)
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: [HACKERS] Runtime Partition Pruning