From owner-cvs-sys Mon Jun 3 19:46:26 1996 Return-Path: owner-cvs-sys Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id TAA07125 for cvs-sys-outgoing; Mon, 3 Jun 1996 19:46:26 -0700 (PDT) Received: (from davidg@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id TAA07103; Mon, 3 Jun 1996 19:46:17 -0700 (PDT) Date: Mon, 3 Jun 1996 19:46:17 -0700 (PDT) From: David Greenman Message-Id: <199606040246.TAA07103@freefall.freebsd.org> To: CVS-committers, cvs-all, cvs-sys Subject: cvs commit: src/sys/kern kern_proc.c kern_sysctl.c Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk davidg 96/06/03 19:46:16 Branch: sys/kern RELENG_2_1_0 Modified: sys/kern kern_proc.c kern_sysctl.c Log: Implemented zpfind() which returns the struct proc * of a zombie PID. Used the above as part of a fix for an architectural flaw in the way that sysctl_doproc works. sysctl_doproc can block while traversing the proc lists and the state of the list may have changed during this time. The fix is to check that the process still exists, and if not, restart the loop from the beginning. Note that I don't understand how to unwind SYSCTL_OUT things in -current, SO SOMEBODY ELSE WILL HAVE TO IMPLEMENT THIS FIX THERE!!! (Poul?) Revision Changes Path 1.10.4.1 +16 -1 src/sys/kern/kern_proc.c 1.25.4.6 +34 -5 src/sys/kern/kern_sysctl.c