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 <b...@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