Browse thread
Disabling the OCaml garbage collector
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Basile STARYNKEVITCH <basile@s...> |
| Subject: | Re: [Caml-list] Disabling the OCaml garbage collector |
Raj Bandyopadhyay wrote:
> Dear all
>
> I am writing a foreign function interface between OCaml and another
> language (Python) which works via C. Since I have some memory issues
> currently, I would like to be able to disable the OCaml Garbage
> collector before jumping into C/Python, and re-enable it when I return
> to OCaml.
I am not convinced it is possible or makes sense. More precisely, your
foreign -coded in C, called by Ocaml code- function probably allocates
some result, and this allocation can trigger the Ocaml garbage collector
In addition, AFAIK, the Ocaml minor garbage collector is only running
when called,
either implicitly from some allocation routines, or explicitly.
So if you don't allocate things either directly or indirectly (e.g. by
calling some callback coded in Ocaml) the Ocaml GC is not running.
>
> I am using the OCaml/C interface and the macros that it provides to
> manage values (CAMLlocal and CAMLparam), but I would like to be able to
> disable the GC entirely for short periods.
You definitely may need to hack the C code inside byterun/minor_gc.c
(for example), but I don't understand what you want exactly.
However, I do know that mixing GCs, like Ocaml & Python, is a nightmare.
Did you consider having two separate Unix processes, one for the Ocaml
code and one for the Python code, and having them communicate thru
standard stuff like pipes, memory mapped files, ...
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***