73 elog(
ERROR,
"PM child array not initialized yet");
137 slots[slotno].
pid = 0;
140 slots[slotno].
rw = NULL;
167 elog(
ERROR,
"cannot allocate a PMChild slot for backend type %d", btype);
186 elog(
ERROR,
"pmchild freelist for backend type %d is corrupt",
195 elog(
DEBUG2,
"assigned pm child slot %d for %s",
260 elog(
ERROR,
"pmchild freelist for backend type %d is corrupt",
int autovacuum_worker_slots
#define Assert(condition)
#define MCXT_ALLOC_NO_OOM
static dlist_node * dlist_pop_head_node(dlist_head *head)
#define dlist_foreach(iter, lhead)
static void dlist_init(dlist_head *head)
static void dlist_delete(dlist_node *node)
static void dlist_push_head(dlist_head *head, dlist_node *node)
static bool dlist_is_empty(const dlist_head *head)
static void dlist_push_tail(dlist_head *head, dlist_node *node)
#define dlist_container(type, membername, ptr)
const char * PostmasterChildName(BackendType child_type)
void pfree(void *pointer)
void * palloc_extended(Size size, int flags)
#define BACKEND_NUM_TYPES
NON_EXEC_STATIC int num_pmchild_slots
PMChild * AssignPostmasterChildSlot(BackendType btype)
bool ReleasePostmasterChildSlot(PMChild *pmchild)
static PMChildPool pmchild_pools[BACKEND_NUM_TYPES]
void InitPostmasterChildSlots(void)
PMChild * AllocDeadEndChild(void)
int MaxLivePostmasterChildren(void)
dlist_head ActiveChildList
PMChild * FindPostmasterChildByPid(int pid)
struct PMChildPool PMChildPool
void MarkPostmasterChildSlotAssigned(int slot)
bool MarkPostmasterChildSlotUnassigned(int slot)
static pg_noinline void Size size
struct RegisteredBgWorker * rw