On Tue, Aug 4, 2015 at 11:33 AM, Andres Freund <andres@anarazel.de> wrote:
> On 2015-08-04 11:29:39 -0400, Robert Haas wrote:
>> On Mon, Aug 3, 2015 at 8:39 AM, Amit Kapila <amit.kapila16@gmail.com> wrote:
>> 1. I got rid of all of the typecasts. You're supposed to treat
>> pg_atomic_u32 as a magic data type that is only manipulated via the
>> primitives provided, not just cast back and forth between that and
>> u32.
>
> Absolutely. Otherwise no fallbacks can work.
>
>> 2. I got rid of the memory barriers. System calls are full barriers,
>> and so are compare-and-exchange operations. Between those two facts,
>> we should be fine without these.
>
> Actually by far not all system calls are full barriers?
How do we know which ones are and which ones are not?
I can't believe PGSemaphoreUnlock isn't a barrier. That would be cruel.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company