Finalizers etcetera

Alastair Reid alastair at
Sat Oct 12 13:10:49 EDT 2002

> Actually, I was claiming that if there's a problem there, then it's
> one you already have.  The reasoning I used is just that eval() can
> call a foreign function, which can re-enter Hugs.  My patch added no
> new code paths (as I said before).

I guess the Hugs documentation should say that using unsafePerformIO
to call C which calls Haskell should be avoided.  Off the top of my
head, I'd say that most legitimate (i.e., safe) uses of
unsafePerformIO don't have problems.  I think Haskell finalizers are
different: virtually every finalizer which manipulates Haskell state
will have race conditions.


More information about the FFI mailing list