* 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 $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "miscadmin.h"
 #include "postmaster/postmaster.h"
+#include "replication/walsender.h"
 #include "storage/pmsignal.h"
 #include "storage/shmem.h"
 
  * 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 */
    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);
 }
 
 /*
 
  *
  *
  * 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 $
  *
  *-------------------------------------------------------------------------
  */
 #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"
     * 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
 
  * 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 $
  *
  *-------------------------------------------------------------------------
  */
 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);