diff options
author | Andres Freund <andres@anarazel.de> | 2021-09-16 03:23:05 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2021-09-16 03:23:05 -0700 |
commit | 3d7c752a2f092b9f6581497009eacd10cab90548 (patch) | |
tree | 225323cdb2a554ed2c5ac14fee70b9fcc0e24663 /src | |
parent | 37a9aa659111c454386b7055dcd3809e45bc17de (diff) | |
download | postgresql-3d7c752a2f092b9f6581497009eacd10cab90548.tar.gz postgresql-3d7c752a2f092b9f6581497009eacd10cab90548.zip |
process startup: Do InitProcess() at the same time regardless of EXEC_BACKEND.
An upcoming patch splits single user mode into its own function. This makes
that easier. Split out for easier review / testing.
Reviewed-By: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Author: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/20210802164124.ufo5buo4apl6yuvs@alap3.anarazel.de
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/postmaster/postmaster.c | 9 | ||||
-rw-r--r-- | src/backend/tcop/postgres.c | 17 |
2 files changed, 14 insertions, 12 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index d16d881e570..2ab7ed7dc39 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -4275,6 +4275,15 @@ BackendStartup(Port *port) /* Perform additional initialization and collect startup packet */ BackendInitialize(port); + /* + * Create a per-backend PGPROC struct in shared memory. We must do + * this before we can use LWLocks. In the !EXEC_BACKEND case (here) + * this could be delayed a bit further, but EXEC_BACKEND needs to do + * stuff with LWLocks before PostgresMain(), so we do it here as well + * for symmetry. + */ + InitProcess(); + /* And run the backend */ BackendRun(port); } diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 489e27f99ae..d85e10d9cef 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -4058,20 +4058,13 @@ PostgresMain(int argc, char *argv[], * point during startup that postmaster does so. */ PgStartTime = GetCurrentTimestamp(); - } - /* - * Create a per-backend PGPROC struct in shared memory, except in the - * EXEC_BACKEND case where this was done in SubPostmasterMain. We must do - * this before we can use LWLocks (and in the EXEC_BACKEND case we already - * had to do some stuff with LWLocks). - */ -#ifdef EXEC_BACKEND - if (!IsUnderPostmaster) + /* + * Create a per-backend PGPROC struct in shared memory. We must do + * this before we can use LWLocks. + */ InitProcess(); -#else - InitProcess(); -#endif + } /* Early initialization */ BaseInit(); |