From owner-freebsd-arch@FreeBSD.ORG Tue Dec 12 20:49:56 2006 Return-Path: X-Original-To: freebsd-arch@freebsd.org Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 13F9716A407; Tue, 12 Dec 2006 20:49:56 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.ntplx.net (mail.ntplx.net [204.213.176.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8E45443CF9; Tue, 12 Dec 2006 20:48:26 +0000 (GMT) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.ntplx.net (8.13.8/8.13.8/NETPLEX) with ESMTP id kBCKnmnT006945; Tue, 12 Dec 2006 15:49:48 -0500 (EST) Date: Tue, 12 Dec 2006 15:49:48 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Poul-Henning Kamp In-Reply-To: <32874.1165905843@critter.freebsd.dk> Message-ID: References: <32874.1165905843@critter.freebsd.dk> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-3.0 (mail.ntplx.net [204.213.176.10]); Tue, 12 Dec 2006 15:49:50 -0500 (EST) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.ntplx.net) Cc: "Arne H. Juul" , David Xu , freebsd-arch@freebsd.org, Kostik Belousov , freebsd-java@freebsd.org Subject: Re: close() of active socket does not work on FreeBSD 6 X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Dec 2006 20:49:56 -0000 On Tue, 12 Dec 2006, Poul-Henning Kamp wrote: > In message <20061212160016.W56465@delplex.bde.org>, Bruce Evans writes: >> On Mon, 11 Dec 2006, Daniel Eischen wrote: > >> It's probably a nightmare in the kernel too. close() starts looking >> like revoke(), and revoke() has large problems and bugs in this area. > > There is the distinctive difference that revoke() operates on a name > and close() on a filedescriptor, but otherwise I agree. Well, if threads waiting on IO are interruptable by signals, can't we make a new signal that's only used by the kernel and send it to all threads waiting on IO for that descriptor? When it gets out to actually setup the signal handler, it just resumes like it is returning from an SA_RESTART signal handler (which according to another posting would reissue the IO command and get EBADF). -- Dan