From nobody Tue Jun 23 16:28:11 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gl9V36b9Xz6hhWT for ; Tue, 23 Jun 2026 16:28:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gl9V34YyLz3MGk for ; Tue, 23 Jun 2026 16:28:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782232091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MZWi/ALwi5MjBdeN8vGlB23Y62xkaLa8O6b6rpW6jmU=; b=KNzvX+D88o86j7PUJdFKeNTreRE+xuxnDVts3HpCmsYgLE/VeiUNMjlm2vllMC8qT/j14r xzbxdqBLBlg29im5/UmGO9W5qtYSfYt7FHVgt8cnG41LTTsWIAJyn9VhIqvXudCV3yMf9M XXtxnL/tMTF3NMAoya2307wqrEWYyabYbJgcQmBXjmSmgClZCyA8avCANBobFNAwgni3Wg pjXXhke/aWbtqdWbBdHxSAXSYGjP+slUKiQPhZ6KjYFcIPDlsKJFzqQiPYl6odnzu0Yzf3 flGsak94ZCMvVwZfwdYnjS9IqQp5V2rKGMIBIzi/fbH0klfJDY4/Sc527ZveEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1782232091; a=rsa-sha256; cv=none; b=ter5/cx2K/qeGnnPlvcvO/z4hlktpayB7bM7XsnP96/ljNk2ank9ZWy+Z48w5VoA9aiF9I sf2iQfk5/8VSXpLEckln2KYLZGRkovJpZDjGv/tem6zEyZiWiYX6Vx5nxxHs4ghXvZdQWN R06NNzQbrmOT0jJwT9Y6v7UbwVfD6KxHwgQNPTP78P6z1BCAf8MyA6alOWR9/GL5N35M+R QuXRtzgzOaAI/f0R7fa+xmzPA9HbU0rtBt4aJKG/YMfzpzpIthBb/SH6jqV08QyvlslYyT /8dJyMXLaNZyx/rcy038D1EQ2lgddjFdbk1GY5Rdn9zj3olcfYmM1QrRrLPtHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782232091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MZWi/ALwi5MjBdeN8vGlB23Y62xkaLa8O6b6rpW6jmU=; b=yp+W0sTUylz7+vuUxqyj1pOROu7JYlPvsOYitydJbHijMhd9ms1APyoxVKdH/tCASu6Icd oV98a7qEgEx2BddtqD9V099+iBuhyUEVuiGnuAiZT4tHGk1/JSoMbifjEQ07KrUdI7Y1VI Gic2juGCKas1gDDsuJCpGW7YMUyQE9p0VSyZaoVfbJdR9Siv/2+DxJacv2p7NyckQ1NHFa 00t3Syff76VgtBGOVO5yMR3bzs7xXbEHxIHGxxIJrL5DonqL48lbnfdkZdX8W8bUGTJquJ /u74eIe87d3S61a9mWweksHUWn7zWHaSPFl82IRA0fhYnXjzOSCzVEFCXHGXZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gl9V32yGnzhbB for ; Tue, 23 Jun 2026 16:28:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27815 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 23 Jun 2026 16:28:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: bab6bfa1181d - stable/15 - ctld: Update nchildren directly in wait_for_children List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bab6bfa1181df69dbd34aad1c8fc3048a558db7c Auto-Submitted: auto-generated Date: Tue, 23 Jun 2026 16:28:11 +0000 Message-Id: <6a3ab41b.27815.4cbdb7b4@gitrepo.freebsd.org> The branch stable/15 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=bab6bfa1181df69dbd34aad1c8fc3048a558db7c commit bab6bfa1181df69dbd34aad1c8fc3048a558db7c Author: John Baldwin AuthorDate: 2026-04-20 17:19:49 +0000 Commit: John Baldwin CommitDate: 2026-06-23 16:05:43 +0000 ctld: Update nchildren directly in wait_for_children This results in slightly less duplicated code. Reviewed by: asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D56526 (cherry picked from commit 4b79ee8eb139696c1fe845d25a56439d02ab4131) --- usr.sbin/ctld/ctld.cc | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/usr.sbin/ctld/ctld.cc b/usr.sbin/ctld/ctld.cc index 2dda88f97b73..8fdb3824bcf7 100644 --- a/usr.sbin/ctld/ctld.cc +++ b/usr.sbin/ctld/ctld.cc @@ -2310,18 +2310,17 @@ start_timer(int timeout, bool fatal) log_err(1, "setitimer"); } -static int +static void wait_for_children(bool block) { pid_t pid; int status; - int num = 0; - for (;;) { - /* - * If "block" is true, wait for at least one process. - */ - if (block && num == 0) + /* + * If "block" is true, wait for at least one process. + */ + while (nchildren > 0) { + if (block) pid = wait4(-1, &status, 0, NULL); else pid = wait4(-1, &status, WNOHANG, NULL); @@ -2336,10 +2335,10 @@ wait_for_children(bool block) } else { log_debugx("child process %d terminated gracefully", pid); } - num++; - } + nchildren--; - return (num); + block = false; + } } static void @@ -2358,15 +2357,13 @@ handle_connection(struct portal *portal, freebsd::fd_up fd, if (dont_fork) { log_debugx("incoming connection; not forking due to -d flag"); } else { - nchildren -= wait_for_children(false); - assert(nchildren >= 0); + wait_for_children(false); while (conf->maxproc() > 0 && nchildren >= conf->maxproc()) { log_debugx("maxproc limit of %d child processes hit; " "waiting for child process to exit", conf->maxproc()); - nchildren -= wait_for_children(true); - assert(nchildren >= 0); + wait_for_children(true); } log_debugx("incoming connection; forking child process #%d", nchildren); @@ -2806,8 +2803,7 @@ main(int argc, char **argv) log_warnx("exiting on signal"); return (0); } else { - nchildren -= wait_for_children(false); - assert(nchildren >= 0); + wait_for_children(false); if (timed_out()) { newconf->isns_update(); }