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.