FFI and Concurrency

Wolfgang Thaller wolfgang.thaller@gmx.net
04 Apr 2003 20:42:23 +0200


Ahn Ki-yung wrote:
> C call blocks the whole process, and Concurret
> module become meaningless. Isn't there any
> library or wrapper that can avoid ccall from
> blocking entire process ?

There is an extension to the GHC runtime system in the CVS version which
addresses this problem, but that means you have to compile a prerelease
version of GHC yourself (and pass a special ./configure flag,
--enable-threaded-rts).

The only other way I could think of would be to write a C language
module that uses pthreads to achieve the purpose (has to be mostly in C
because you mustn't enter the Haskell runtime system from a second
thread).

Cheers,

Wolfgang