Re: Checks in RegisterBackgroundWorker.()

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-08-24T21:00:27Z
Lists: pgsql-hackers
On Fri, Aug 25, 2023 at 3:15 AM Heikki Linnakangas <hlinnaka@iki.fi> wrote:
> In summary, RegisterBackgroundWorker() is doing some questionable and
> useless work, when a shared preload library is loaded to a backend
> process in EXEC_BACKEND mode.

Yeah.  When I was working on 7389aad6 ("Use WaitEventSet API for
postmaster's event loop."), I also tried to move all of the
postmaster's state variables into PostmasterContext (since the only
reason for that scope was the signal handler code that is now gone),
and I hit a variant of this design problem.  I wonder if that would be
unblocked by this...

https://www.postgresql.org/message-id/CA+hUKGKH_RPAo=NgPfHKj--565aL1qiVpUGdWt1_pmJehY+dmw@mail.gmail.com



Commits

  1. Rename StartBackgroundWorker() to BackgroundWorkerMain().

  2. Allocate Backend structs in PostmasterContext.

  3. Clarify the checks in RegisterBackgroundWorker.