(
ForeignPtr(..),
FinalizerPtr,
- newForeignPtr,
newForeignPtr_,
mallocForeignPtr,
mallocForeignPtrBytes,
--
type FinalizerPtr a = FunPtr (Ptr a -> IO ())
-newForeignPtr :: Ptr a -> FinalizerPtr a -> IO (ForeignPtr a)
--- ^Turns a plain memory reference into a foreign pointer, and
--- associates a finaliser with the reference. The finaliser will be executed
--- after the last reference to the foreign object is dropped. Note that there
--- is no guarantee on how soon the finaliser is executed after the last
--- reference was dropped; this depends on the details of the Haskell storage
--- manager. The only guarantee is that the finaliser runs before the program
--- terminates.
-newForeignPtr p finalizer
- = do fObj <- newForeignPtr_ p
- addForeignPtrFinalizer fObj finalizer
- return fObj
-
newConcForeignPtr :: Ptr a -> IO () -> IO (ForeignPtr a)
-- ^Turns a plain memory reference into a foreign object
-- by associating a finaliser - given by the monadic operation