From owner-freebsd-current Thu May 10 8:53:26 2001 Delivered-To: freebsd-current@freebsd.org Received: from meow.osd.bsdi.com (meow.osd.bsdi.com [204.216.28.88]) by hub.freebsd.org (Postfix) with ESMTP id 1F6C637B423 for ; Thu, 10 May 2001 08:53:24 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: from laptop.baldwin.cx (john@jhb-laptop.osd.bsdi.com [204.216.28.241]) by meow.osd.bsdi.com (8.11.2/8.11.2) with ESMTP id f4AFrJG84551; Thu, 10 May 2001 08:53:20 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.4.0 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <3AFAB649.67D53F11@mindspring.com> Date: Thu, 10 May 2001 08:52:24 -0700 (PDT) From: John Baldwin To: Terry Lambert Subject: Re: select(2) converted to use a condition variable, and optimis Cc: current@FreeBSD.org, Seigo Tanimura Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 10-May-01 Terry Lambert wrote: > Seigo Tanimura wrote: >> A quick and hopefully efficient solution to those problems is to >> fhold() struct file's first, then enter polling loop. That seems much >> cheaper than to work on free()ing a vnode or a socket with holding a >> process lock, provided that struct filedesc and file are protected >> properly (and we have to do it anyway). > > Let me once again point out that fhold(), like crhold(), > should act as an l-valued function that takes an r-value > as an "argument", as in: > > a = crhold(b); > q = fhold(r); > etc. (for all such functions). > > [ snip ] I agree with all this, I just haven't had the time to sit down and do it. > -- Terry -- John Baldwin -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message