aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/postmaster.c9
-rw-r--r--src/backend/tcop/postgres.c17
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();