Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Jan 2001 09:25:02 -0500 (EST)
From:      Daniel Eischen <eischen@vigrid.com>
To:        "Jacques A. Vidrine" <n@nectar.com>
Cc:        mouss <usebsd@free.fr>, Garance A Drosihn <drosih@rpi.edu>, Matt Dillon <dillon@earth.backplane.com>, Luigi Rizzo <rizzo@aciri.org>, hackers@FreeBSD.ORG, wollman@khavrinen.lcs.mit.edu
Subject:   Re: [kernel patch] fcntl(...) to close many descriptors
Message-ID:  <Pine.SUN.3.91.1010129092038.9067A-100000@pcnet1.pcnet.com>
In-Reply-To: <20010129081455.B2390@hamlet.nectar.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 29 Jan 2001, Jacques A. Vidrine wrote:
> On Mon, Jan 29, 2001 at 03:13:05PM +0100, mouss wrote:
> > I fully agree that we'd better mimic netbsd than aix...
> > but the netbsd closeall() is just a libc function that calls close()
> > for all descriptors. so we can still mimic it with:
> > 
> > #define closeall(start) fcntl(start, F_CLOSEM, 0)
> 
> Better a function than a macro.

I agree.

> > and with this, we have both netbsd and aix compat. note that if I
> > do it for freebsd, I'll do the same for netbsd and openbsd (I'm a fan of
> > *BSD convergence [I don't mean they should be the same, but unjustified
> > diffs should be killed whenever possible]:).
> > 
> > As for the "generic" syscall mechanism, I'd love it. I think that
> > there are many places where "names" would be good, instead of
> > hardcoded numbers. The only problem is to find a way to do that
> > without reducing performance. names are good. just try to see what it
> > would be if filenames were replaced by inodes. I think that having a
> > name-based mechanism makes it easier to add new syscalls or reject
> > deprecated ones.
> 
> Performance is not much of an issue.  A perfect hash can be generated
> for syscall names.
> 
> [snip]
> > back to the closeall, here is what I suggest:
> > - add the fcntl option. the coherence arg is certainly reasonable, but 
> > fcntl is not a "cohrent" function
> > (thanks to svr4 lobbying into posix:).
> > - add a closeall macro to call it.
> > 
> > this gives both aix and netbsd compat (and if the fcntl thing goes into 
> > netbsd, the compat would be full).
> 
> I really do not care for using fcntl with this.  fcntl operates on a 
> single file descriptor -- F_CLOSEM mucks up the interface.

Please don't forget libc_r and what it has to do when opening and
closing files.  Also, close(2) is a cancellation point.  I'd expect
closeall(2/3) would also be a cancellation point even if not spelled
out in POSIX (since it doesn't exist).

-- 
Dan Eischen


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.1010129092038.9067A-100000>