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
Re: [Caml-list] Toplevel crashes when trying to call external functions
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-07-12 (10:55)
From: Gerd Stolpmann <info@g...>
Subject: Re: [Caml-list] Toplevel crashes when trying to call external functions
Am Mon, 2004-07-12 um 05.39 schrieb John Prevost:
> You shouldn't have to package up a non-caml managed pointer in any
> sort of caml structure at all.  Take a look at section 18.6 of the
> manual, specifically the definitions of curses_initscr and
> curses_wrefresh.  Any pointer that's outside the caml heap (that is,
> pretty much any pointer that you're getting from a non-caml function)
> can simply be treated as opaque, and you can use Caml's type system to
> make sure it's valid (as long as the C code always handles these
> pointers correctly.)

In principle, this is correct, but there are traps. For example,
consider the case the memory block is freed by the C routine, and the
same block is allocated by the caml runtime. In this case, the pointer,
once outside the caml heap, is now inside, and the GC crashes. Because
of this, I would not recommend this technique. Custom blocks (or int32
blocks) are risk-free in this regard.

Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: