[Haskell-cafe] Re: Are handles garbage-collected?
Malcolm Wallace
Malcolm.Wallace at cs.york.ac.uk
Tue Oct 26 05:41:45 EDT 2004
"Simon Marlow" <simonmar at microsoft.com> writes:
> I didn't mean fully synchronous, just "more synchronous". For example,
> the finalization routine could be run directly after garbage collection.
> Hugs & nhc98 already do this, because they don't support Haskell
> finalizers.
Actually, nhc98 supports both C and Haskell finalisers, with the same
signatures as in ghc:
newForeignPtr :: FinalizerPtr a -> Ptr a -> IO (ForeignPtr a)
newConcForeignPtr :: IO () -> Ptr a -> IO (ForeignPtr a)
C finalisers are run during garbage collection, Haskell finalisers
are run immediately afterwards. In fact, you cannot run a Haskell
finaliser during GC, because you don't have a valid heap to run it in.
Regards,
Malcolm
More information about the Haskell-Cafe
mailing list