"Simon Marlow" <[EMAIL PROTECTED]> 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 _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe