-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Weak pointer extas -- -- Better weak pointer support for IORefs and ForeignPtrs. @package weak @version 0 module System.Mem.Weak.IORef -- | Make an arbitrary Weak reference from a IORef. -- -- Provides a more general API than the crippled one offered by -- mkWeakIORef to match the power of mkWeak. mkWeakIORef' :: IORef k -> v -> Maybe (IO ()) -> IO (Weak v) -- | Functions like mkWeakPtr but for IORefs. -- -- Make an arbitrary Weak reference from an IORef and an -- optional finalizer. -- -- A specialised version of mkWeakIORef' where the key and value -- are the same. mkWeakIORefPtr :: IORef k -> Maybe (IO ()) -> IO (Weak (IORef k)) -- | A specialised version of mkWeakIORef' where the value is -- actually a pair of the key and value passed to mkWeakIORefPair: -- --
-- mkWeakIORefPair key val finalizer ≡ mkWeakIORef' key (key,val) finalizer ---- -- The advantage of this is that the key can be retrieved by -- deRefWeak in addition to the value. mkWeakIORefPair :: IORef k -> v -> Maybe (IO ()) -> IO (Weak (IORef k, v)) module System.Mem.Weak.ForeignPtr -- | Make a Weak reference from a ForeignPtr. This attaches -- to the IORef down inside of the ForeignPtr that holds -- onto the finalizers. This is safer than attaching to the -- ForeignPtr itself. -- -- However: this does not work with PlainPtr or -- FinalPtr-based ForeignPtrs, so make sure you know how -- you built your ForeignPtr. mkWeakForeignPtr :: ForeignPtr k -> v -> Maybe (IO ()) -> IO (Weak v) -- | Functions like mkWeakPtr but for ForeignPtrs. -- -- A specialised version of mkWeakForeignPtr, where the key and -- the value are the same object: -- --
-- mkWeakForeignPtrPtr key finalizer = mkWeakForeignPtr key key finalizer --mkWeakForeignPtrPtr :: ForeignPtr a -> Maybe (IO ()) -> IO (Weak (ForeignPtr a)) -- | Functions like mkWeakPair but for ForeignPtrs. -- -- A specialised version of mkWeakForeignPtr where the value is -- actually a pair of the key and value passed to -- mkWeakForeignPtrPair: mkWeakForeignPtrPair key val -- finalizer ≡ mkWeakForeignPtr key (key,val) finalizer The -- advantage of this is that the key can be retrieved by deRefWeak -- in addition to the value. mkWeakForeignPtrPair :: ForeignPtr k -> v -> Maybe (IO ()) -> IO (Weak (ForeignPtr k, v))