Hello,

On 17-01-2011, mas <[email protected]> wrote:
> Hello all,
> I've been struggling with a problem with OCaml's C interface and can't
> seem to deduce the problem. Here's what's going on in a nutshell:
>
> - I used OCaml's C interface to develop a series of OCaml wrappers for
> C functions.
> - The functions operate correctly for the most part....however when I
> call the functions repeatedly (anywhere between a dozen to a few
> hundred invocations), the function does not return and locks up.
> - I have been able to track down the problem to points where I call
> caml memory allocation calls (e.g. caml_copy_double) in the C code.
> Turns out that on random occasions this function does not return and
> ends up utilizing 100% of the CPU!
>
> My gut feeling is that I'm exceeding the memory size the OCaml runtime
> allocates for its internal C stack/heap and the call fails. Rather
> than return something like a NULL, my guess is that the allocator is
> waiting for space to free up. However as there is no error message or
> indication of what is failing, I'm not sure what to do. Any ideas for
> what this could be and how I can find more info? Is there any way I
> can print out info about the VM state?
>

You can get various VM info through the Gc module.

The best you can do is to provide us with a minimal example of what is
not working. You can even try to call Gc.compact/full_major/major/minor
that should help to speed up memory problems...

The most common problem with OCaml/C stub is the lack of CAMLparamX,
CAMLlocal or CAMLreturn which leads to inconsistent memory. 

Cheers,
Sylvain Le Gall
-- 
My company: http://www.ocamlcore.com
Linkedin:   http://fr.linkedin.com/in/sylvainlegall
Start an OCaml project here: http://forge.ocamlcore.org
OCaml blogs:                 http://planet.ocamlcore.org


-- 
You received this message because you are subscribed to the Google Groups 
"ocaml-developer" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/ocaml-developer?hl=en
For other OCaml forums, see http://caml.inria.fr/resources/forums.en.html

Reply via email to