Re: Fix volatile vs. pointer confusion - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: Fix volatile vs. pointer confusion
Date
Msg-id 20190311115739.GA5231@alvherre.pgsql
Whole thread Raw
In response to Fix volatile vs. pointer confusion  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Responses Re: Fix volatile vs. pointer confusion
List pgsql-hackers
On 2019-Mar-11, Peter Eisentraut wrote:

> Variables used after a longjmp() need to be declared volatile.  In
> case of a pointer, it's the pointer itself that needs to be declared
> volatile, not the pointed-to value.  So we need
> 
>     PyObject *volatile items;
> 
> instead of
> 
>     volatile PyObject *items;  /* wrong */

Looking at recently committed 2e616dee9e60, we have introduced this:

+       volatile xmlBufferPtr buf = NULL;
+       volatile xmlNodePtr cur_copy = NULL;

where the pointer-ness nature of the object is inside the typedef.  I
*suppose* that this is correct as written.  There are a few occurrences
of this pattern in eg. contrib/xml2.


-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


pgsql-hackers by date:

Previous
From: Shaoqi Bai
Date:
Subject: Re: Fwd: Add tablespace tap test to pg_rewind
Next
From: Peter Eisentraut
Date:
Subject: Re: Fix optimization of foreign-key on update actions