diff options
Diffstat (limited to 'src/backend/postmaster/postmaster.c')
-rw-r--r-- | src/backend/postmaster/postmaster.c | 45 |
1 files changed, 6 insertions, 39 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 92e51bd54db..49cbd8cd05f 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -4100,15 +4100,6 @@ 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); } @@ -4420,6 +4411,12 @@ static void BackendRun(Port *port) { /* + * Create a per-backend PGPROC struct in shared memory. We must do this + * before we can use LWLocks or access any shared memory. + */ + InitProcess(); + + /* * Make sure we aren't in PostmasterContext anymore. (We can't delete it * just yet, though, because InitPostgres will need the HBA data.) */ @@ -4918,12 +4915,6 @@ SubPostmasterMain(int argc, char *argv[]) /* Restore basic shared memory pointers */ InitShmemAccess(UsedShmemSegAddr); - /* Need a PGPROC to run AttachSharedMemoryStructs */ - InitProcess(); - - /* Attach process to shared data structures */ - AttachSharedMemoryStructs(); - /* And run the backend */ BackendRun(port); /* does not return */ } @@ -4936,12 +4927,6 @@ SubPostmasterMain(int argc, char *argv[]) /* Restore basic shared memory pointers */ InitShmemAccess(UsedShmemSegAddr); - /* Need a PGPROC to run AttachSharedMemoryStructs */ - InitAuxiliaryProcess(); - - /* Attach process to shared data structures */ - AttachSharedMemoryStructs(); - auxtype = atoi(argv[3]); AuxiliaryProcessMain(auxtype); /* does not return */ } @@ -4950,12 +4935,6 @@ SubPostmasterMain(int argc, char *argv[]) /* Restore basic shared memory pointers */ InitShmemAccess(UsedShmemSegAddr); - /* Need a PGPROC to run AttachSharedMemoryStructs */ - InitProcess(); - - /* Attach process to shared data structures */ - AttachSharedMemoryStructs(); - AutoVacLauncherMain(argc - 2, argv + 2); /* does not return */ } if (strcmp(argv[1], "--forkavworker") == 0) @@ -4963,12 +4942,6 @@ SubPostmasterMain(int argc, char *argv[]) /* Restore basic shared memory pointers */ InitShmemAccess(UsedShmemSegAddr); - /* Need a PGPROC to run AttachSharedMemoryStructs */ - InitProcess(); - - /* Attach process to shared data structures */ - AttachSharedMemoryStructs(); - AutoVacWorkerMain(argc - 2, argv + 2); /* does not return */ } if (strcmp(argv[1], "--forkbgworker") == 0) @@ -4979,12 +4952,6 @@ SubPostmasterMain(int argc, char *argv[]) /* Restore basic shared memory pointers */ InitShmemAccess(UsedShmemSegAddr); - /* Need a PGPROC to run AttachSharedMemoryStructs */ - InitProcess(); - - /* Attach process to shared data structures */ - AttachSharedMemoryStructs(); - MyBgworkerEntry = worker; BackgroundWorkerMain(); } |