aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/postmaster/bgworker.c12
-rw-r--r--src/include/postmaster/bgworker.h12
2 files changed, 12 insertions, 12 deletions
diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c
index f807c9cfa19..5ed422999c3 100644
--- a/src/backend/postmaster/bgworker.c
+++ b/src/backend/postmaster/bgworker.c
@@ -134,17 +134,15 @@ BackgroundWorkerShmemInit(void)
Assert(found);
}
+/*
+ * Search the postmaster's backend-private list of RegisteredBgWorker objects
+ * for the one that maps to the given slot number.
+ */
static RegisteredBgWorker *
FindRegisteredWorkerBySlotNumber(int slotno)
{
slist_iter siter;
- /*
- * Copy contents of worker list into shared memory. Record the
- * shared memory slot assigned to each worker. This ensures
- * a 1-to-1 correspondence betwen the postmaster's private list and
- * the array in shared memory.
- */
slist_foreach(siter, &BackgroundWorkerList)
{
RegisteredBgWorker *rw;
@@ -158,7 +156,7 @@ FindRegisteredWorkerBySlotNumber(int slotno)
}
/*
- * Notice changes to shared_memory made by other backends. This code
+ * Notice changes to shared memory made by other backends. This code
* runs in the postmaster, so we must be very careful not to assume that
* shared memory contents are sane. Otherwise, a rogue backend could take
* out the postmaster.
diff --git a/src/include/postmaster/bgworker.h b/src/include/postmaster/bgworker.h
index b260dc5e4e8..0bb897b8f37 100644
--- a/src/include/postmaster/bgworker.h
+++ b/src/include/postmaster/bgworker.h
@@ -6,11 +6,13 @@
* including normal transactions.
*
* Any external module loaded via shared_preload_libraries can register a
- * worker. Then, at the appropriate time, the worker process is forked from
- * the postmaster and runs the user-supplied "main" function. This code may
- * connect to a database and run transactions. Once started, it stays active
- * until shutdown or crash. The process should sleep during periods of
- * inactivity.
+ * worker. Workers can also be registered dynamically at runtime. In either
+ * case, the worker process is forked from the postmaster and runs the
+ * user-supplied "main" function. This code may connect to a database and
+ * run transactions. Once started, it stays active until shutdown or crash;
+ * unless the restart interval is declared as BGW_NEVER_RESTART and the
+ * process exits with a return code of 1; workers that do this are
+ * automatically unregistered by the postmaster.
*
* If the fork() call fails in the postmaster, it will try again later. Note
* that the failure can only be transient (fork failure due to high load,