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
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
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
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