Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] GC, Anonymous Functions, and C
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Richard Jones <rich@a...>
Subject: Re: [Caml-list] GC, Anonymous Functions, and C
On Sat, Dec 18, 2004 at 10:55:23AM +1300, Jonathan Roewen wrote:
> Hi,
> When passing an anonymous ocaml function to a C function, is it safe
> to store that value in an array, and then call it later at an abitrary
> time, or will the GC reclaim it? And if so, what should be done to
> stop the GC from doing so?
> Basically, we're trying to do interrupt handling from OCaml, and need
> to store the anonymous functions somewhere for the IDT to jump into,
> to provide a little context for the problem.

The GC might reclaim the value (function, or whatever) unless you
register it as a global root.  To do this you need to call
caml_register_global_root on each value which you put in the array.
Furthermore you ought to call caml_remove_global_root when you remove
the value from the array and no longer need it.


Richard Jones.
>>> - collaboration tools for teams   <<<
Merjis Ltd. - improving website return on investment - Personal improvement courses