Thread: Remove Start* macros from postmaster.c to ease understanding of code

Remove Start* macros from postmaster.c to ease understanding of code

From
reid.thompson@crunchydata.com
Date:
Hi,

Attached is a small patch implemented as I agree with Andres' comment
below noted while reviewing the thread

https://www.postgresql.org/message-id/flat/20240122210740.7vq5fd4woixpwx3f%40awork3.anarazel.de#6eb7595873392621d60e6b5a723941bc

I agree that its easier to not have to refer back to the macros only to
see that they're all invoking StartChildProcess(X). All invocations are
within postmaster.c.

> @@ -561,13 +561,13 @@ static void ShmemBackendArrayAdd(Backend *bn);
>  static void ShmemBackendArrayRemove(Backend *bn);
>  #endif                            /* EXEC_BACKEND */
>
> -#define StartupDataBase()        StartChildProcess(StartupProcess)
> -#define StartArchiver()            StartChildProcess(ArchiverProcess)
> -#define StartBackgroundWriter() StartChildProcess(BgWriterProcess)
> -#define StartCheckpointer()        StartChildProcess(CheckpointerProcess)
> -#define StartWalWriter()        StartChildProcess(WalWriterProcess)
> -#define StartWalReceiver()        StartChildProcess(WalReceiverProcess)
> -#define StartWalSummarizer()    StartChildProcess(WalSummarizerProcess)
> +#define StartupDataBase()        StartChildProcess(B_STARTUP)
> +#define StartArchiver()            StartChildProcess(B_ARCHIVER)
> +#define StartBackgroundWriter() StartChildProcess(B_BG_WRITER)
> +#define StartCheckpointer()        StartChildProcess(B_CHECKPOINTER)
> +#define StartWalWriter()        StartChildProcess(B_WAL_WRITER)
> +#define StartWalReceiver()        StartChildProcess(B_WAL_RECEIVER)
> +#define StartWalSummarizer()    StartChildProcess(B_WAL_SUMMARIZER)

Not for this commit, but we ought to rip out these macros - all they do is to make it harder to understand the code.

Attachment

Re: Remove Start* macros from postmaster.c to ease understanding of code

From
Nathan Bossart
Date:
On Tue, Feb 06, 2024 at 11:58:50AM -0500, reid.thompson@crunchydata.com wrote:
> Attached is a small patch implemented as I agree with Andres' comment
> below noted while reviewing the thread
>
https://www.postgresql.org/message-id/flat/20240122210740.7vq5fd4woixpwx3f%40awork3.anarazel.de#6eb7595873392621d60e6b5a723941bc
> 
> I agree that its easier to not have to refer back to the macros only to
> see that they're all invoking StartChildProcess(X). All invocations are
> within postmaster.c. 

Seems reasonable to me.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com



Re: Remove Start* macros from postmaster.c to ease understanding of code

From
Bharath Rupireddy
Date:
On Tue, Feb 6, 2024 at 10:34 PM <reid.thompson@crunchydata.com> wrote:
>
> Hi,
>
> Attached is a small patch implemented as I agree with Andres' comment
> below noted while reviewing the thread
>
https://www.postgresql.org/message-id/flat/20240122210740.7vq5fd4woixpwx3f%40awork3.anarazel.de#6eb7595873392621d60e6b5a723941bc
>
> I agree that its easier to not have to refer back to the macros only to
> see that they're all invoking StartChildProcess(X). All invocations are
> within postmaster.c.
>
> > @@ -561,13 +561,13 @@ static void ShmemBackendArrayAdd(Backend *bn);
> >  static void ShmemBackendArrayRemove(Backend *bn);
> >  #endif                                                       /* EXEC_BACKEND */
> >
> > -#define StartupDataBase()            StartChildProcess(StartupProcess)
> > -#define StartArchiver()                      StartChildProcess(ArchiverProcess)
> > -#define StartBackgroundWriter() StartChildProcess(BgWriterProcess)
> > -#define StartCheckpointer()          StartChildProcess(CheckpointerProcess)
> > -#define StartWalWriter()             StartChildProcess(WalWriterProcess)
> > -#define StartWalReceiver()           StartChildProcess(WalReceiverProcess)
> > -#define StartWalSummarizer() StartChildProcess(WalSummarizerProcess)
> > +#define StartupDataBase()            StartChildProcess(B_STARTUP)
> > +#define StartArchiver()                      StartChildProcess(B_ARCHIVER)
> > +#define StartBackgroundWriter() StartChildProcess(B_BG_WRITER)
> > +#define StartCheckpointer()          StartChildProcess(B_CHECKPOINTER)
> > +#define StartWalWriter()             StartChildProcess(B_WAL_WRITER)
> > +#define StartWalReceiver()           StartChildProcess(B_WAL_RECEIVER)
> > +#define StartWalSummarizer() StartChildProcess(B_WAL_SUMMARIZER)
>
> Not for this commit, but we ought to rip out these macros - all they do is to make it harder to understand the code.

+1. Patch LGTM.

--
Bharath Rupireddy
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com



Re: Remove Start* macros from postmaster.c to ease understanding of code

From
Nathan Bossart
Date:
On Wed, Feb 07, 2024 at 12:48:00AM +0530, Bharath Rupireddy wrote:
> +1. Patch LGTM.

Unless there are objections, I'll plan on committing this in the next day
or two.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com



Re: Remove Start* macros from postmaster.c to ease understanding of code

From
Nathan Bossart
Date:
On Tue, Feb 06, 2024 at 02:37:25PM -0600, Nathan Bossart wrote:
> Unless there are objections, I'll plan on committing this in the next day
> or two.

Committed.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com