From owner-cvs-sys Mon Jun 3 19:45:16 1996 Return-Path: owner-cvs-sys Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id TAA07037 for cvs-sys-outgoing; Mon, 3 Jun 1996 19:45:16 -0700 (PDT) Received: (from davidg@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id TAA07013; Mon, 3 Jun 1996 19:45:06 -0700 (PDT) Date: Mon, 3 Jun 1996 19:45:06 -0700 (PDT) From: David Greenman Message-Id: <199606040245.TAA07013@freefall.freebsd.org> To: CVS-committers, cvs-all, cvs-sys Subject: cvs commit: src/sys/sys proc.h Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk davidg 96/06/03 19:45:05 Branch: sys/sys RELENG_2_1_0 Modified: sys/sys proc.h 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.17.4.1 +2 -1 src/sys/sys/proc.h