
28 Aug
2002
28 Aug
'02
8:45 a.m.
I remember that addFinalizer never did work quite the way people expected it to. A current instantiation of this problem: adding a finalizer to a ThreadId. Could somebody please give me a short explanation why the following never prints "Finalize"? [ghc is 5.04-cvs] \begin{code} module Main where import IO import Concurrent import GHC.Weak main = do mv <- newEmptyMVar child <- forkIO $ do takeMVar mv print "terminated" addFinalizer child fin putMVar mv () yield yield yield threadDelay $ 1000*1000*30 print "done" fin :: IO () fin = do print "Finalize" \end{code} -- http://www-i2.informatik.rwth-aachen.de/stolz/ *** PGP *** S/MIME