gi-glib-2.0.9: GLib bindings

CopyrightWill Thompson, Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.GLib.Structs.RecMutex

Contents

Description

The GRecMutex struct is an opaque data structure to represent a recursive mutex. It is similar to a #GMutex with the difference that it is possible to lock a GRecMutex multiple times in the same thread without deadlock. When doing so, care has to be taken to unlock the recursive mutex as often as it has been locked.

If a #GRecMutex is allocated in static storage then it can be used without initialisation. Otherwise, you should call g_rec_mutex_init() on it and g_rec_mutex_clear() when done.

A GRecMutex should only be accessed with the g_rec_mutex_ functions.

Synopsis

Exported types

newtype RecMutex Source #

Constructors

RecMutex (ManagedPtr RecMutex) 

Instances

WrappedPtr RecMutex Source # 
(~) AttrOpTag tag AttrSet => Constructible RecMutex tag Source # 

Methods

new :: MonadIO m => (ManagedPtr RecMutex -> RecMutex) -> [AttrOp RecMutex tag] -> m RecMutex

((~) * info (ResolveRecMutexMethod t RecMutex), MethodInfo * info RecMutex p) => IsLabel t (RecMutex -> p) Source # 

Methods

fromLabel :: Proxy# Symbol t -> RecMutex -> p #

((~) * info (ResolveRecMutexMethod t RecMutex), MethodInfo * info RecMutex p) => IsLabelProxy t (RecMutex -> p) Source # 

Methods

fromLabelProxy :: Proxy Symbol t -> RecMutex -> p

HasAttributeList * RecMutex Source # 
((~) * signature (m ()), MonadIO m) => MethodInfo * RecMutexUnlockMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexUnlockMethodInfo RecMutex -> signature -> s

((~) * signature (m Bool), MonadIO m) => MethodInfo * RecMutexTrylockMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexTrylockMethodInfo RecMutex -> signature -> s

((~) * signature (m ()), MonadIO m) => MethodInfo * RecMutexLockMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexLockMethodInfo RecMutex -> signature -> s

((~) * signature (m ()), MonadIO m) => MethodInfo * RecMutexInitMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexInitMethodInfo RecMutex -> signature -> s

((~) * signature (m ()), MonadIO m) => MethodInfo * RecMutexClearMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexClearMethodInfo RecMutex -> signature -> s

type AttributeList RecMutex Source # 
type AttributeList RecMutex

newZeroRecMutex :: MonadIO m => m RecMutex Source #

Construct a RecMutex struct initialized to zero.

Methods

clear

data RecMutexClearMethodInfo Source #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * RecMutexClearMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexClearMethodInfo RecMutex -> signature -> s

init

data RecMutexInitMethodInfo Source #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * RecMutexInitMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexInitMethodInfo RecMutex -> signature -> s

lock

data RecMutexLockMethodInfo Source #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * RecMutexLockMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexLockMethodInfo RecMutex -> signature -> s

trylock

data RecMutexTrylockMethodInfo Source #

Instances

((~) * signature (m Bool), MonadIO m) => MethodInfo * RecMutexTrylockMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexTrylockMethodInfo RecMutex -> signature -> s

unlock

data RecMutexUnlockMethodInfo Source #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * RecMutexUnlockMethodInfo RecMutex signature Source # 

Methods

overloadedMethod :: MethodProxy RecMutexUnlockMethodInfo RecMutex -> signature -> s