Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
A #GOnce struct controls a one-time initialization function. Any one-time initialization function must have its own unique #GOnce struct.
- newtype Once = Once (ForeignPtr Once)
- newZeroOnce :: MonadIO m => m Once
- noOnce :: Maybe Once
- onceInitEnter :: MonadIO m => Ptr () -> m Bool
- onceInitLeave :: MonadIO m => Ptr () -> Word64 -> m ()
- onceClearRetval :: MonadIO m => Once -> m ()
- onceReadRetval :: MonadIO m => Once -> m (Ptr ())
- onceRetval :: AttrLabelProxy "retval"
- onceWriteRetval :: MonadIO m => Once -> Ptr () -> m ()
- onceReadStatus :: MonadIO m => Once -> m OnceStatus
- onceStatus :: AttrLabelProxy "status"
- onceWriteStatus :: MonadIO m => Once -> OnceStatus -> m ()
Exported types
WrappedPtr Once | |
(~) AttrOpTag tag AttrSet => Constructible Once tag | |
((~) * info (ResolveOnceMethod t Once), MethodInfo * info Once p) => IsLabelProxy t (Once -> p) | |
type AttributeList Once |
newZeroOnce :: MonadIO m => m Once Source
Construct a Once
struct initialized to zero.
Methods
onceInitEnter
onceInitEnter :: MonadIO m => Ptr () -> m Bool Source
onceInitLeave
onceInitLeave :: MonadIO m => Ptr () -> Word64 -> m () Source
Properties
Retval
onceClearRetval :: MonadIO m => Once -> m () Source
onceReadRetval :: MonadIO m => Once -> m (Ptr ()) Source
onceRetval :: AttrLabelProxy "retval" Source
onceWriteRetval :: MonadIO m => Once -> Ptr () -> m () Source
Status
onceReadStatus :: MonadIO m => Once -> m OnceStatus Source
onceStatus :: AttrLabelProxy "status" Source
onceWriteStatus :: MonadIO m => Once -> OnceStatus -> m () Source