From owner-freebsd-current Fri Mar 17 18: 5:25 2000 Delivered-To: freebsd-current@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 84A9537B9B5 for ; Fri, 17 Mar 2000 18:05:21 -0800 (PST) (envelope-from bright@fw.wintelcom.net) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id e2I2RuD28649; Fri, 17 Mar 2000 18:27:56 -0800 (PST) Date: Fri, 17 Mar 2000 18:27:56 -0800 From: Alfred Perlstein To: Archie Cobbs Cc: freebsd-current@FreeBSD.ORG Subject: Re: kern/8324 Message-ID: <20000317182756.A14789@fw.wintelcom.net> References: <200003180132.RAA89424@bubba.whistle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0.1i In-Reply-To: <200003180132.RAA89424@bubba.whistle.com>; from archie@whistle.com on Fri, Mar 17, 2000 at 05:32:40PM -0800 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG * Archie Cobbs [000317 17:55] wrote: > This bug has been around since at least 2.2.6 and is still present > in RELENG_3, RELENG_4, and -current. > > http://www.freebsd.org/cgi/query-pr.cgi?pr=8324 > > Is anyone planning to tackle it? What would be required to fix it? > (it's not clear (to me anyway) from Bruce's description how hard > this is to fix..) I think Bruce sort of went off into a tangent with his diagnosis, anyhow this is untested (of course :) ), but looks like the right thing to do (from sys_pipe.c). Perhaps the fcntls and ioctls aren't being propogated enough to set the flags properly, but if they are then it should work sort of the way SIGIO does, basically generating a signal for /some condition/ on a descriptor. -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] Index: tty_pty.c =================================================================== RCS file: /home/ncvs/src/sys/kern/tty_pty.c,v retrieving revision 1.74 diff -u -u -r1.74 tty_pty.c --- tty_pty.c 2000/02/09 03:32:11 1.74 +++ tty_pty.c 2000/03/18 06:12:55 @@ -337,6 +337,8 @@ selwakeup(&pti->pt_selw); wakeup(TSA_PTC_WRITE(tp)); } + if ((tp->t_state & TS_ASYNC) && tp->t_sigio) + pgsigio(tp->t_sigio, SIGIO, 0); } static int To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message