postgres.git / summary / log / commit / refs
commit 149e38e5ee02731d505946ced0f7bfc547c0e374
Author: Robert Haas <rhaas@postgresql.org>
Date: Thu Aug 01 16:20:31 2013 +0000
First released in: 9.4.0
Assorted bgworker-related comment fixes.
Per gripes by Amit Kapila.
src/backend/postmaster/bgworker.c | 12 +++++-------
src/include/postmaster/bgworker.h | 12 +++++++-----
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,
[parent: 813fb0315587]