You need to do something like this to force them to run, apparently
main = do foo $ Prelude.concat $ replicate 100 data_
Just triggering the GC with performGC doesn't do it.
The really odd thing is that if I setup a C finalizer (see below)
then it's triggered once and the whole thing crashes with a bus
error. Duncan reported that it segfaulted for him as well.
installFinalizer fps@(P.PS fp _ _) =
addForeignPtrFinalizer finalizer fp
foreign import ccall unsafe "finalizer" finalizer :: FinalizerPtr Word8
where the finalizer itself is
#include <stdio.h>
void finalizer(char *p) {
printf("--- Finalized: %x\n", p);
}
On Nov 6, 2005, at 6:31 PM, David Roundy wrote:
This is definitely odd. I can't see a reason why the finalizers
wouldn't
be running.
--
http://wagerlabs.com/
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe