> On Fri, Sep 27, 2002 at 12:25:31PM +0100, Simon Marlow wrote: > > Then I'll reformulate my question as a patch. Enclosed is a > > proof-of-concept patch that implements Haskell finalizers > in Hugs, which > > works on some simple tests that I've run. There's nothing > particularly > > clever going on - I'm just suspending execution of the > finalizers until > > the next call to eval(). > > It seems to have problems if more than one finalizer is > pending, probably > because runIO() calls eval(): > > t = do > sequence_ (map f [1..30]) > performGC > where f n = do > p <- mallocBytes 64 > newForeignPtr p $ do > free p > putStrLn ("finalize " ++ show n)
Looks like I missed out a pop() - the enclosed patch works with your example. (I'm not very familiar with the internals of Hugs). Cheers, Simon
patch
Description: patch