* 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);