Ross Paterson ross at
Tue Sep 24 13:27:11 EDT 2002

On Tue, Sep 24, 2002 at 06:07:12PM +0100, Alastair Reid wrote:
> Seems like it'd be reasonable to specify an order for these.
> An alternative would be to drop addForeignPtrFinalizer.  I have no
> idea what the motivation for this function is since I can't think when
> you'd need/want/prefer to add finalization actions incrementally
> instead of doing it in one step.  Can someone give a motivating
> example where there is some advantage in adding finalization actions
> incrementally?

Consider regcomp in Test.Regex.Posix.  You malloc an array of bytes and
make that a ForeignPtr by adding finalizerFree (your ptr_free).  Then you
pass it to the C regcomp() function.  Now you want to add the C regfree()
function as a finalizer.  You could call both from a single C finalizer
(as Manuel suggests in another thread) but I prefer Haskell.  Also that
option doesn't work if the array was allocated with mallocForeignPtrBytes.

More information about the FFI mailing list