On 06/07/2024 22:01, Heikki Linnakangas wrote:
> Reading through postmaster code, I spotted some refactoring
> opportunities to make it slightly more readable.
>
> Currently, when a child process exits, the postmaster first scans
> through BackgroundWorkerList to see if it was a bgworker process. If not
> found, it scans through the BackendList to see if it was a backend
> process (which it really should be then). That feels a bit silly,
> because every running background worker process also has an entry in
> BackendList. There's a lot of duplication between
> CleanupBackgroundWorker and CleanupBackend.
>
> Before commit 8a02b3d732, we used to created Backend entries only for
> background worker processes that connected to a database, not for other
> background worker processes. I think that's why we have the code
> structure we have. But now that we have a Backend entry for all bgworker
> processes, it's more natural to have single function to deal with both
> regular backends and bgworkers.
>
> So I came up with the attached patches. This doesn't make any meaningful
> user-visible changes, except for some incidental changes in log messages
> (see commit message for details).
New patch version attached. Fixed conflicts with recent commits, no
other changes.
--
Heikki Linnakangas
Neon (https://neon.tech)