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>