From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Subject: Re: Fix volatile vs. pointer confusion
Date: Mon, 11 Mar 2019 08:57:39 -0300
Message-ID: <20190311115739.GA5231@alvherre.pgsql> (raw)
In-Reply-To: <f747368d-9e1a-c46a-ac76-3c27da32e8e4@2ndquadrant.com>
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: alvherre@2ndquadrant.com, peter.eisentraut@2ndquadrant.com
Subject: Re: Fix volatile vs. pointer confusion
In-Reply-To: <20190311115739.GA5231@alvherre.pgsql>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox