caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Goswin von Brederlow <goswin-v-b@web.de>
To: Sylvain Le Gall <sylvain@le-gall.net>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Re: Looking for stubs for sendmsg/recvmsg
Date: Sat, 20 Nov 2010 21:32:35 +0100	[thread overview]
Message-ID: <87lj4n3fdo.fsf@frosties.localnet> (raw)
In-Reply-To: <slrniedtff.r67.sylvain@gallu.homelinux.org> (Sylvain Le Gall's message of "Fri, 19 Nov 2010 22:10:55 +0000 (UTC)")

Sylvain Le Gall <sylvain@le-gall.net> writes:

> On 19-11-2010, Goswin von Brederlow <goswin-v-b@web.de> wrote:
>> Sylvain Le Gall <sylvain@le-gall.net> writes:
>>> On 19-11-2010, Goswin von Brederlow <goswin-v-b@web.de> wrote:
>>>> Sylvain Le Gall <sylvain@le-gall.net> writes:
>>>>> On 18-11-2010, Goswin von Brederlow <goswin-v-b@web.de> wrote:
>>>
>>> Not that much, if you proceed in another way. I think what you are
>>> looking for is a fd leak detector?
>>>
>>> Here is a small modules that I have written for this purpose:
>>>
>>> File UnixExt.ml:
>>> (** Count open/close call *)
>
> [...]
>
>>> [...override other functions that open/close fd...]
>>>
>>> Then in the modules using this features, you just have to open UnixExt
>>> after Unix...
>>>
>>> You can even probably design a library that will transparently hide Unix
>>> with a custom Unix module providing this feature.
>>
>> Much less usefull.
>>
>> Using a custom block with finalizer means that the FD will be closed
>> relative close to where/when it was leaked. Makes it easier to find
>> where it was leaked and adding GC.compact calls at strategic locations
>> can narrow it down even more. Leaking FDs also becomes much less
>> serious. The GC will clean them up and close them. So you can use an app
>> that leaks FDs just fine.
>>
>
> It all depends on what you want: fix your program that leaks or live
> with it. The former piece of code helps to fail if there are leaked FD.
> On Unix FD leaks is not that problematic, but on Windows it turns to be
> another problem.
>
> The best example about this: you cannot delete a file that has an FD
> still open on it. This makes harder to remove temporary file (and this
> piece of code was precisely made to track FD on temporary files, that
> let 1000s of unremoved temp file). 
>
> Regards,
> Sylvain Le Gall

Which again speaks for my solution. The leaked FD will be closed much
faster (before the program terminates) and one can remove the tempfiles
while the program is still running.

MfG
        Goswin


  reply	other threads:[~2010-11-20 20:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-18 17:40 Goswin von Brederlow
2010-11-19  8:50 ` [Caml-list] " Jérémie Dimino
2010-11-19  8:56 ` Sylvain Le Gall
2010-11-19 16:06   ` [Caml-list] " Goswin von Brederlow
2010-11-19 16:30     ` Sylvain Le Gall
2010-11-19 18:39       ` [Caml-list] " Goswin von Brederlow
2010-11-19 22:10         ` Sylvain Le Gall
2010-11-20 20:32           ` Goswin von Brederlow [this message]
2010-11-20 23:00             ` Sylvain Le Gall
2010-11-21 18:34               ` FDs as cutsom blocks instead of int Goswin von Brederlow
2010-11-21 21:38       ` [Caml-list] Re: Looking for stubs for sendmsg/recvmsg ygrek
2010-11-19 10:27 ` [Caml-list] " Dave Scott
2010-11-19 16:28   ` Goswin von Brederlow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lj4n3fdo.fsf@frosties.localnet \
    --to=goswin-v-b@web.de \
    --cc=caml-list@inria.fr \
    --cc=sylvain@le-gall.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).