From: Axel S. <Axe...@en...> - 2009-03-25 15:50:35
|
On Wed, 2009-03-25 at 15:34 +0000, Simon Marlow wrote: > > So assuming I would like to use the new interface that is hiding behind > > the old function names, are there C functions to free a Haskell > > StablePtr and a FunPtr that I can call from within the C finalizer that > > the GC calls? > > extern void hs_free_stable_ptr (HsStablePtr sp); > extern void hs_free_fun_ptr (HsFunPtr fp); > > They're part of the standard FFI. Yes, ok. I guess I mainly wanted to know if they can be called from within a C finalizer. Final question: if I'd free a Haskell function pointer using these C functions, their closure is not going to be collected before the next GC, right? Thus, there's no real benefit in using this API to free C structures that hold pointers to Haskell land since it always takes at least n garbage collections to collect chains with n Haskell->C->Haskell pointer chains. Axel. |