summaryrefslogtreecommitdiff
path: root/source3/lib/server_prefork_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/lib/server_prefork_util.c')
-rw-r--r--source3/lib/server_prefork_util.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/source3/lib/server_prefork_util.c b/source3/lib/server_prefork_util.c
index 638ce66f09..01c7994f60 100644
--- a/source3/lib/server_prefork_util.c
+++ b/source3/lib/server_prefork_util.c
@@ -67,6 +67,7 @@ void pfh_manage_pool(struct tevent_context *ev_ctx,
time_t now = time(NULL);
int total, avail;
int ret, n;
+ bool msg = false;
if ((cfg->prefork_status & PFH_NEW_MAX) &&
!(cfg->prefork_status & PFH_ENOSPC)) {
@@ -119,6 +120,7 @@ void pfh_manage_pool(struct tevent_context *ev_ctx,
if (n == avail) break;
n = avail;
}
+ msg = true;
} else if (avail > total + cfg->spawn_rate) {
n = avail;
while (avail > total + cfg->spawn_rate) {
@@ -130,6 +132,14 @@ void pfh_manage_pool(struct tevent_context *ev_ctx,
}
}
+ /* send message to all children when we change maximum allowed
+ * connections, so that they can decide to start again to listen to
+ * sockets if they were already topping the number of allowed
+ * clients. Useful only when we increase allowed clients */
+ if (msg) {
+ prefork_warn_active_children(msg_ctx, pool);
+ }
+
DEBUG(10, ("Stats: children: %d, allowed connections: %d\n",
prefork_count_children(pool, NULL),
prefork_count_allowed_connections(pool)));