The Revenge of Finalizers

Simon Marlow simonmar at
Tue Oct 15 08:31:24 EDT 2002

> > Also, this is a nested call to eval(), in a primitive, which can
> > invoke an IO action and therefore re-enter Haskell without going
> > through unsafePerformIO.  Is that safe?
> Yes, I think so.  Most calls to IO actions from primitives are safe
> and I believe these ones are too.  (In some ways, its the rarity of
> race conditions, etc. biting you that disturbs me most about Haskell
> finalizers: it's hard to remember to do the right thing when the wrong
> thing happens so rarely.)

So, are we now claiming that my patch *is* safe?  (Never mind about
IORefs, I'm talking about the implementation itself).


More information about the FFI mailing list