On Fri, 17 Aug 2012, Henning Thielemann wrote:

The doc of base-4.5:Foreign.ForeignPtr.addForeignPtrFinalizer states:
"This function adds a finalizer to the given foreign object. The finalizer will run before all other finalizers for the same object which have already been registered."


I do

 addForeignPtrFinalizer finalize1 fp
 addForeignPtrFinalizer finalize2 fp

and let the finalizers print something when they are started.
I get the output:

 finalizer1
 finalizer2

This indicates that the newly added finalizer is run _after_ the finalizers that are already registered. Is this a documentation bug or a bug in the base library?


Hm, it seems to depend on the context. In some situations I get the correct (reversed) order

  finalizer2
  finalizer1

and in others I get finalizer1 first and then finalizer2. Any hint what can change the order of finalizers?

_______________________________________________
FFI mailing list
FFI@haskell.org
http://www.haskell.org/mailman/listinfo/ffi

Reply via email to