Help me grok addFinalizer
wagnerdm at seas.upenn.edu
wagnerdm at seas.upenn.edu
Thu Feb 16 21:53:11 CET 2012
Quoting Antoine Latter <aslatter at gmail.com>:
> On Thu, Feb 16, 2012 at 2:04 PM, Michael Craig <mkscrg at gmail.com> wrote:
>> When I read the docs for System.Mem.Weak, it all seems to make sense. But
>> then this code doesn't run as I expect it to when I turn on
>> -threaded: http://hpaste.org/63832 (Expected/actual output are listed in the
>> paste.)
>>
>> I've tried this on 7.4.1 and 7.0.4 with the same results. Can someone
>> enlighten me?
>
> First off, I'm pretty sure finalizers won't run until the data they
> were associated with has been GCd, and GHC doesn't do GCs unless there
> is allocation - threadDelay doesn't allocate much, I imagine.
This seems to be an explanation of why a finalizer might run later
than expected (or not run at all). But his paste shows that it runs
*earlier* than what he expected.
~d
More information about the Glasgow-haskell-users
mailing list