On Tue, Feb 7, 2012 at 5:23 AM, Austin Seipp <
mad.one@gmail.com> wrote:
> Just to clarify, this guarantee possibly could be made, ghc just doesn't do
> it now. In the past ghc never guaranteed a finalizer would ever be run.
>
> Regardless I would be wary of trusting finalizers to clean up very scarce
> resources. A malloc'd buffer is probably fine to have a finalizer for,
> texture objects or file descriptors are a different matter. Predictability
> matters in those cases.
>
>
> Sent from my iPhone^H^H^H^H^HPortable Turing machine
>
> On Feb 6, 2012, at 10:16 PM, Austin Seipp <
mad.one@gmail.com> wrote:
>
> It's a precise GC of course (conservative collection would be madness
> considering how much memory Haskell programs chew through.) That still
> doesn't ensure your finalizer will run during the next GC even if all the
> references are gone by then.
>
> Sent from my iPhone^H^H^H^H^HPortable Turing machine
>
> On Feb 6, 2012, at 10:09 PM, Clark Gaebel <
cgaebel@csclub.uwaterloo.ca>
> wrote:
>
> Is the Haskell garbage collector conservative, or precise?
>
> If it's conservative, then this will only usually work. If it's precise, it
> should always work.
>
> On Mon, Feb 6, 2012 at 10:56 PM, Ben Lippmeier <
benl@ouroborus.net> wrote:
>>
>>
>> On 07/02/2012, at 2:50 PM, Clark Gaebel wrote:
>>
>> > I would be running the GC manually at key points to make sure it gets
>> > cleaned up. Mainly, before any scene changes when basically everything gets
>> > thrown out anyways.
>>
>>
>> From the docs:
>>
>> newForeignPtr :: FinalizerPtr a -> Ptr a -> IO (ForeignPtr a)Source
>> Turns a plain memory reference into a foreign pointer, and associates a
>> finalizer with the reference. The finalizer will be executed after the last
>> reference to the foreign object is dropped. There is no guarantee of
>> promptness, however the finalizer will be executed before the program exits.
>>
>>
>> "No guarantee of promptness". Even if the GC knows your pointer is
>> unreachable, it might choose not to call the finaliser. I think people have
>> been bitten by this before.
>>
>> Ben.
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
>
Haskell-Cafe@haskell.org
>
http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
> _______________________________________________
> Haskell-Cafe mailing list
>
Haskell-Cafe@haskell.org
>
http://www.haskell.org/mailman/listinfo/haskell-cafe
>