:Hi,
:
:   I like this approach. I have a number of often spawned daemon
:processes that could benefit from this. One of the last process
:we debugged where we had unwanted open filedescriptors was in
:programs invoked by the cvs loginfo script.
:
:   For naming convention considerations, I might suggest 'closeall'
:or 'closefdset' or something similar... at least have 'close' in 
:name... :-)

    Well, when I weight the benefit of the savings in overhead for a single
    syscall verses a close() loop, and when I weigh the seriousness of 
    introducing a syscall that would not be portable to other operating 
    systems, and if I also take into account the work required to deal with
    descriptors after forking a daemon....  well, I don't think that adding
    a new syscall would be worth the relatively minor benefit nor do I think
    the improvement in performance would be noticeable.  The benefit isn't
    great enough to warrent a new syscall in my view.

    I've written a number of forking daemons, most noteable my web server
    and my Diablo news transit system.

    I just don't think the reduced overhead would be noticeable over simply
    calling close(), and I didn't have any problems keeping track of which
    file descriptors to close in Diablo (and there could be 100+ descriptors).
    Keep in mind that after a fork these descriptors have a ref count > 1,
    meaning that the close() syscall is almost free.  If you assume 5uS/close
    you are still talking quite a bit less then a millisecond to close a
    hundred descriptors.  And that's pretty much the worst case I can think
    of.

                                        -Matt



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to