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
/* 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);
}
* 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();