add closefrom() call
Bert JW Regeer
xistence at 0x58.com
Sat Jul 7 07:58:23 UTC 2007
On Jul 6, 2007, at 9:57 AM, Julian Elischer wrote:
> Robert Watson wrote:
>> On Fri, 6 Jul 2007, Julian Elischer wrote:
>>> Ed Schouten wrote:
>>>> * LI Xin <delphij at delphij.net> wrote:
>>>>> Here is my implementation for FreeBSD. Some difference between
>>>>> my and DragonFly's implementation:
>>>>>
>>>>> - closefrom(-1) would be no-op on DragonFly, my version would
>>>>> close all open files (From my understanding of OpenSolaris's
>>>>> userland implementation, this is Solaris's behavior).
>>>>> - my version closefrom(very_big_fd) would result in EBADF. I
>>>>> am not very sure whether this is correct, but it does not hurt
>>>>> for applications that thinks closefrom() would return void.
>>>>
>>>> Wouldn't it be better to just implement it through fcntl() and
>>>> implement closefrom() in libc?
>>>
>>> that's a possibility but I personally thing the huge difference
>>> in efficiency makes it worth putting it in the kernel. Quite a
>>> few programs I know of could really help their startup time with
>>> this as the first thing they do is "close the first 2000 file
>>> descriptors.
>> The Solaris implementation appears to implement two strategies:
>> (1) If procfs is mounted, list the fd directory to get a list of
>> open fds,
>> then close those by number.
>> (2) If procfs is not mounted, query the number of open fds using
>> the resource
>> limit interface, then sequentially close until the right
>> number close.
>> Hence my question as to whether there's actually a big benefit or
>> not -- do we think closefrom() is a performance-critical function?
>
>
> It's one of those things where it's so simple to do it that it
> hardly seems worth arguing about the colour, or even whether colour
> is spelled color or colour.
>
>> Robert N M Watson
>> Computer Laboratory
>> University of Cambridge
>
So guys, where can I pick up my bike-shed?
Bert JW Regeer
More information about the freebsd-hackers
mailing list