From owner-freebsd-commit Wed Oct 4 18:15:40 1995 Return-Path: owner-commit Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id SAA12390 for freebsd-commit-outgoing; Wed, 4 Oct 1995 18:15:40 -0700 Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id SAA12378 for cvs-all-outgoing; Wed, 4 Oct 1995 18:15:37 -0700 Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id SAA12367 for cvs-sys-outgoing; Wed, 4 Oct 1995 18:15:34 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id SAA12338 ; Wed, 4 Oct 1995 18:15:20 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id LAA23044; Thu, 5 Oct 1995 11:10:27 +1000 Date: Thu, 5 Oct 1995 11:10:27 +1000 From: Bruce Evans Message-Id: <199510050110.LAA23044@godzilla.zeta.org.au> To: CVS-commiters@freefall.freebsd.org, bde@freefall.freebsd.org, cvs-sys@freefall.freebsd.org Subject: Re: cvs commit: src/sys/net if_ppp.c Sender: owner-commit@FreeBSD.org Precedence: bulk > Modified: sys/net if_ppp.c > Log: > Don't wait for output to drain in pppclose(). Discard output immediately > for the same reasons as in slclose(). > > [stuff that shouldn't go in 2.1] This should go in 2.1. Unlike for slip, this only helps when pppd is killed without giving it a chance to clean up. pppd uses a waiting form of tcsetattr() to restore the tty state as part of cleaning up, and it doesn't bother to switch the line discipline back to TTYDISC before calling tcsetattr(), so it hangs before pppclose() is called. This is not as serious as hanging in close() in exit(), because not all signals are blocked. Hanging pppd's can be killed by sending them 2 SIGTERMs after the signal that made it start cleaning up (SIGHUPs are blocked). Bruce