Safe Haskell | None |
---|---|

Language | Haskell98 |

Some helper functions for dealing with `GClosure`

s.

## Synopsis

- newtype GClosure a = GClosure (ManagedPtr (GClosure a))
- newGClosure :: MonadIO m => FunPtr a -> m (GClosure a)
- wrapGClosurePtr :: Ptr (GClosure a) -> IO (GClosure a)
- newGClosureFromPtr :: Ptr (GClosure a) -> IO (GClosure a)
- noGClosure :: Maybe (GClosure a)
- unrefGClosure :: (HasCallStack, MonadIO m) => GClosure a -> m ()
- disownGClosure :: GClosure a -> IO (Ptr (GClosure a))

# Documentation

The basic type. This corresponds to a wrapped `GClosure`

on the C
side, which is a boxed object.

GClosure (ManagedPtr (GClosure a)) |

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.