haskell-gi-base-0.23.0: Foundation for libraries generated by haskell-gi
Safe HaskellNone



Some helper functions for dealing with GClosures.



newtype GClosure a Source #

The basic type. This corresponds to a wrapped GClosure on the C side, which is a boxed object.


GClosure (ManagedPtr (GClosure a)) 


Instances details
BoxedObject (GClosure a) Source # 
Instance details

Defined in Data.GI.Base.GClosure

newGClosure :: MonadIO m => FunPtr a -> m (GClosure a) Source #

Create a new GClosure holding the given FunPtr. Note that after calling this the FunPtr will be freed whenever the GClosure is garbage collected, so it is generally not safe to refer to the generated FunPtr after this function returns.

wrapGClosurePtr :: Ptr (GClosure a) -> IO (GClosure a) Source #

Take ownership of a passed in Ptr to a GClosure.

newGClosureFromPtr :: Ptr (GClosure a) -> IO (GClosure a) Source #

Construct a Haskell wrapper for the GClosure, without assuming ownership.

noGClosure :: Maybe (GClosure a) Source #

A convenience alias for Nothing :: Maybe (GClosure a).

unrefGClosure :: (HasCallStack, MonadIO m) => GClosure a -> m () Source #

Decrease the reference count of the given GClosure. If the reference count reaches 0 the memory will be released.

disownGClosure :: GClosure a -> IO (Ptr (GClosure a)) Source #

Disown (that is, remove from te purview of the Haskell Garbage Collector) the given GClosure.