gi-gobject-2.0.2: GObject 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.GObject.Structs.WeakRef

Contents

Description

A structure containing a weak reference to a #GObject. It can either be empty (i.e. point to %NULL), or point to an object for as long as at least one "strong" reference to that object exists. Before the object's GWeakRef associated with becomes empty (i.e. points to %NULL).

Like GWeakRef can be statically allocated, stack- or heap-allocated, or embedded in larger structures.

Unlike g_object_weak_ref() and g_object_add_weak_pointer(), this weak reference is thread-safe: converting a weak pointer to a reference is atomic with respect to invalidation of weak pointers to destroyed objects.

If the object's #GObjectClass.dispose method results in additional references to the object being held, any #GWeakRefs taken before it was disposed will continue to point to %NULL. If #GWeakRefs are taken after the object is disposed and re-referenced, they will continue to point to it until its refcount goes back to zero, at which point they too will be invalidated.

Synopsis

Exported types

newtype WeakRef Source #

Constructors

WeakRef (ForeignPtr WeakRef) 

Instances

WrappedPtr WeakRef Source # 

Methods

wrappedPtrCalloc :: IO (Ptr WeakRef)

wrappedPtrCopy :: Ptr WeakRef -> IO (Ptr WeakRef)

wrappedPtrFree :: Maybe (FunPtr (Ptr WeakRef -> IO ()))

((~) * info (ResolveWeakRefMethod t WeakRef), MethodInfo * info WeakRef p) => IsLabel t (WeakRef -> p) Source # 

Methods

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

((~) * info (ResolveWeakRefMethod t WeakRef), MethodInfo * info WeakRef p) => IsLabelProxy t (WeakRef -> p) Source # 

Methods

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

type AttributeList WeakRef Source # 
type AttributeList WeakRef