Re: remove unnecessary volatile qualifiers - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: remove unnecessary volatile qualifiers
Date
Msg-id ca45cde2-1247-4146-ba64-363349214dbf@iki.fi
Whole thread
In response to remove unnecessary volatile qualifiers  (Nathan Bossart <nathandbossart@gmail.com>)
Responses Re: remove unnecessary volatile qualifiers
List pgsql-hackers
On 01/07/2026 00:47, Nathan Bossart wrote:
> I looked into some of these earlier [0], but ended up leaving them alone at
> the time.  Here is a new patch that removes all of the volatile markers in
> the tree that seemed obviously unnecessary to me.

Thanks!

> --- a/src/backend/access/transam/clog.c
> +++ b/src/backend/access/transam/clog.c
> @@ -450,7 +450,7 @@ static bool
>  TransactionGroupUpdateXidStatus(TransactionId xid, XidStatus status,
>                                  XLogRecPtr lsn, int64 pageno)
>  {
> -    volatile PROC_HDR *procglobal = ProcGlobal;
> +    PROC_HDR   *procglobal = ProcGlobal;
>      PGPROC       *proc = MyProc;
>      uint32        nextidx;
>      uint32        wakeidx;

You might want to get rid of the local variable altogether and just 
refer to ProcGlobal directly..

> @@ -512,7 +512,7 @@ ProcessProcSignalBarrier(void)
>  {
>      uint64        local_gen;
>      uint64        shared_gen;
> -    volatile uint32 flags;
> +    uint32        flags;
>  
>      Assert(MyProcSignalSlot);
>  

Are you sure about this one? 'flags' is used in the PG_TRY/CATCH block 
that follows. It is modified in the PG_TRY(), here:

> 
>                 /*
>                  * To avoid an infinite loop, we must always unset the bit in
>                  * flags.
>                  */
>                 BARRIER_CLEAR_BIT(flags, type);

and read later in the PG_CATCH() block.


The rest looks OK to me.

- Heikki



pgsql-hackers by date:

Previous
From: Ashutosh Bapat
Date:
Subject: Re: PROPERTY GRAPH pg_dump ACL minimization
Next
From: 이민재
Date:
Subject: [PROPOSAL] Natively expose primary key and NOT NULL flags in pgoutput Relation messages