From owner-freebsd-net Wed Dec 13 17:31: 9 2000 From owner-freebsd-net@FreeBSD.ORG Wed Dec 13 17:31:05 2000 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 274D037B402; Wed, 13 Dec 2000 17:31:05 -0800 (PST) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id eBE1V4611720; Wed, 13 Dec 2000 17:31:04 -0800 (PST) Date: Wed, 13 Dec 2000 17:31:04 -0800 From: Alfred Perlstein To: Matt Dillon Cc: Kirk McKusick , arch@FreeBSD.ORG, net@FreeBSD.ORG Subject: Re: patch to cleanup inflight desciptor handling. Message-ID: <20001213173103.B16205@fw.wintelcom.net> References: <200012131852.KAA17423@beastie.mckusick.com> <200012132106.eBDL6Sg86570@earth.backplane.com> <20001213141917.Q16205@fw.wintelcom.net> <20001213145341.S16205@fw.wintelcom.net> <20001213153649.T16205@fw.wintelcom.net> <200012140125.eBE1Pbi89951@earth.backplane.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <200012140125.eBE1Pbi89951@earth.backplane.com>; from dillon@earth.backplane.com on Wed, Dec 13, 2000 at 05:25:37PM -0800 Sender: bright@fw.wintelcom.net Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org * Matt Dillon [001213 17:25] wrote: > > :I guess the gc has to stay. > : > :dammit. :) > : > :My apologies for wasting everyone's time here. > : > :-- > :-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] > > No waste at all, Alfred, the file descriptor passing code had been > broken for over 10 years precisely because of its complexity. Rewriting > the GC to be more efficient essentially requires using deep graph theory > to locate isolated loops of arbitrary complexity. > > p.s. many object oriented language garbage collectors have the same > problem. create object A, create object B, A references B, B references A, > drop A, drop B. A and B still have references and don't get cleaned up. > Fun. Are you saying the code in place is broken? If so I'll spend some time looking at it and the Linux implementation to figure if at least one of us gets it right and try to find some sort of solution. Obviously the easiest way would be to disallow passing of any descriptors that have descriptors in thier socketbuffers. Since almost no one uses this code, and I hardly see a reason for allowing that type of operation (passing af_unix fds with fds in flight) it might be a good idea to just disallow that sort of operation. It would definetly simplify and probably speed up the code. -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message