diff --git a/src/backend/storage/ipc/pmsignal.c b/src/backend/storage/ipc/pmsignal.c index 2a414a0c2f3..083bf40b4dd 100644 --- a/src/backend/storage/ipc/pmsignal.c +++ b/src/backend/storage/ipc/pmsignal.c @@ -8,7 +8,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/ipc/pmsignal.c,v 1.30 2010/01/15 09:19:03 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/storage/ipc/pmsignal.c,v 1.31 2010/08/23 17:20:01 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -19,6 +19,7 @@ #include "miscadmin.h" #include "postmaster/postmaster.h" +#include "replication/walsender.h" #include "storage/pmsignal.h" #include "storage/shmem.h" @@ -46,8 +47,8 @@ * child processes at random, and postmaster.c is responsible for tracking * which one goes with which PID. * - * The fourth state, WALSENDER, is just like ACTIVE, but carries the extra - * information that the child is a WAL sender. + * Actually there is a fourth state, WALSENDER. This is just like ACTIVE, + * but carries the extra information that the child is a WAL sender. */ #define PM_CHILD_UNUSED 0 /* these values must fit in sig_atomic_t */ @@ -224,23 +225,8 @@ MarkPostmasterChildActive(void) Assert(slot > 0 && slot <= PMSignalState->num_child_flags); slot--; Assert(PMSignalState->PMChildFlags[slot] == PM_CHILD_ASSIGNED); - PMSignalState->PMChildFlags[slot] = PM_CHILD_ACTIVE; -} - -/* - * MarkPostmasterChildWalSender - like MarkPostmasterChildActive(), but - * marks the postmaster child as a WAL sender instead of a regular backend. - * This is called in the child process. - */ -void -MarkPostmasterChildWalSender(void) -{ - int slot = MyPMChildSlot; - - Assert(slot > 0 && slot <= PMSignalState->num_child_flags); - slot--; - Assert(PMSignalState->PMChildFlags[slot] == PM_CHILD_ASSIGNED); - PMSignalState->PMChildFlags[slot] = PM_CHILD_WALSENDER; + PMSignalState->PMChildFlags[slot] = + (am_walsender ? PM_CHILD_WALSENDER : PM_CHILD_ACTIVE); } /* diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index 04d11f73cf3..e90417a4932 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/lmgr/proc.c,v 1.221 2010/07/06 19:18:57 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/storage/lmgr/proc.c,v 1.222 2010/08/23 17:20:01 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -39,7 +39,6 @@ #include "access/xact.h" #include "miscadmin.h" #include "postmaster/autovacuum.h" -#include "replication/walsender.h" #include "storage/ipc.h" #include "storage/lmgr.h" #include "storage/pmsignal.h" @@ -297,12 +296,7 @@ InitProcess(void) * this; it probably should.) */ if (IsUnderPostmaster && !IsAutoVacuumLauncherProcess()) - { - if (am_walsender) - MarkPostmasterChildWalSender(); - else - MarkPostmasterChildActive(); - } + MarkPostmasterChildActive(); /* * Initialize all fields of MyProc, except for the semaphore which was diff --git a/src/include/storage/pmsignal.h b/src/include/storage/pmsignal.h index 1dc42ecc0a1..0e4e1d1e1cd 100644 --- a/src/include/storage/pmsignal.h +++ b/src/include/storage/pmsignal.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/storage/pmsignal.h,v 1.32 2010/07/06 19:19:00 momjian Exp $ + * $PostgreSQL: pgsql/src/include/storage/pmsignal.h,v 1.33 2010/08/23 17:20:01 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -47,7 +47,6 @@ extern int AssignPostmasterChildSlot(void); extern bool ReleasePostmasterChildSlot(int slot); extern bool IsPostmasterChildWalSender(int slot); extern void MarkPostmasterChildActive(void); -extern void MarkPostmasterChildWalSender(void); extern void MarkPostmasterChildInactive(void); extern bool PostmasterIsAlive(bool amDirectChild);