[Caml-list] Re: Random segfaults / out of memory

2010-03-18 Thread Goswin von Brederlow
Goswin von Brederlow writes: > Goswin von Brederlow writes: > >>> On Wed, Mar 17, 2010 at 09:27:30AM +0100, Goswin von Brederlow wrote: I want to rewrite the Digest module to expose a more lowlevel interface to the md5 digest and add support to digest Bigarrays. I've patched the r

Re: [Caml-list] Re: Random segfaults / out of memory

2010-03-30 Thread David Baelde
On Thu, Mar 18, 2010 at 4:56 AM, Goswin von Brederlow wrote: > This is a tricky situation. The md5_update_bigarray() on its own is a > "noalloc" function. But due to the caml_enter_blocking_section() another > thread can alloc and trigger a GC run in parallel. So I guess that makes > the function

Re: [Caml-list] Re: Random segfaults / out of memory

2010-03-30 Thread Xavier Leroy
So, is it really forbidden to release the global lock in a noalloc function? Yes. Actually, it is forbidden to call any function of the OCaml runtime system from a noalloc function. Explanation: ocamlopt-generated code caches in registers some global variables of importance to the OCaml runtim

Re: [Caml-list] Re: Random segfaults / out of memory

2010-03-30 Thread Markus Mottl
On Tue, Mar 30, 2010 at 11:57, Xavier Leroy wrote: > Yes.  Actually, it is forbidden to call any function of the OCaml > runtime system from a noalloc function. It may not always be clear to developers whether a function provided by the OCaml API is safe. E.g. calling Val_int is fine (at least n