From owner-freebsd-hackers@FreeBSD.ORG Fri Nov 17 18:56:05 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 754AF16A403 for ; Fri, 17 Nov 2006 18:56:05 +0000 (UTC) (envelope-from phirerunner@comcast.net) Received: from rwcrmhc12.comcast.net (rwcrmhc12.comcast.net [216.148.227.152]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9897D43D80 for ; Fri, 17 Nov 2006 18:55:59 +0000 (GMT) (envelope-from phirerunner@comcast.net) Received: from localhost.my.domain (c-67-165-107-143.hsd1.pa.comcast.net[67.165.107.143]) by comcast.net (rwcrmhc12) with SMTP id <20061117185556m1200m3he4e>; Fri, 17 Nov 2006 18:55:57 +0000 Date: Fri, 17 Nov 2006 13:55:53 -0500 From: Jared Yanovich To: freebsd-hackers@freebsd.org Message-Id: <20061117135553.14cfdaa1.phirerunner@comcast.net> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Fri, 17 Nov 2006 20:58:38 +0000 Subject: save process exit status in kevent NOTE_EXIT X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Nov 2006 18:56:05 -0000 Any reason why this may be a bad idea? I think it'd be useful for a pwait(1)-like utility (from Solaris). Index: lib/libc/sys/kqueue.2 =================================================================== RCS file: /home/ncvs/src/lib/libc/sys/kqueue.2,v retrieving revision 1.44 diff -u -p -r1.44 kqueue.2 --- lib/libc/sys/kqueue.2 17 Sep 2006 21:27:34 -0000 1.44 +++ lib/libc/sys/kqueue.2 17 Nov 2006 18:50:48 -0000 @@ -364,6 +364,8 @@ The events to monitor are: .Bl -tag -width XXNOTE_TRACKERR .It NOTE_EXIT The process has exited. +The exit status will be stored in +.Va data . .It NOTE_FORK The process has called .Fn fork . Index: sys/kern/kern_event.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_event.c,v retrieving revision 1.106 diff -u -p -r1.106 kern_event.c --- sys/kern/kern_event.c 25 Sep 2006 01:29:48 -0000 1.106 +++ sys/kern/kern_event.c 17 Nov 2006 18:50:49 -0000 @@ -396,6 +396,7 @@ filt_proc(struct knote *kn, long hint) if (!(kn->kn_status & KN_DETACHED)) knlist_remove_inevent(&p->p_klist, kn); kn->kn_flags |= (EV_EOF | EV_ONESHOT); + kn->kn_data = kn->kn_ptr.p_proc->p_xstat; kn->kn_ptr.p_proc = NULL; return (1); }