13 Oct
2002
13 Oct
'02
1:10 a.m.
SimonM:
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. -- Alastair