Once

A glib.Once struct controls a one-time initialization function. Any one-time initialization function must have its own unique glib.Once struct.

Constructors

this
this(GOnce* gOnce, bool ownedRef)

Sets our main struct and passes it to the parent class.

Destructor

A destructor is present on this object, but not explicitly documented in the source.

Members

Functions

getOnceStruct
GOnce* getOnceStruct(bool transferOwnership)

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

impl
void* impl(GThreadFunc func, void* arg)

Properties

retval
void* retval [@property getter]
void* retval [@property setter]

the value returned by the call to the function, if status is G_ONCE_STATUS_READY

status
GOnceStatus status [@property getter]
GOnceStatus status [@property setter]

the status of the glib.Once

Static functions

initEnter
bool initEnter(void* location)

Function to be called when starting a critical initialization section. The argument location must point to a static 0-initialized variable that will be set to a value other than 0 at the end of the initialization section. In combination with Once.initLeave and the unique address value_location, it can be ensured that an initialization section will be executed only once during a program's life time, and that concurrent threads are blocked until initialization completed. To be used in constructs like this:

initLeave
void initLeave(void* location, size_t result)

Counterpart to Once.initEnter. Expects a location of a static 0-initialized initialization variable, and an initialization value other than 0. Sets the variable to the initialization value, and releases concurrent threads blocking in Once.initEnter on this initialization variable.

Variables

gOnce
GOnce* gOnce;

the main Gtk struct

Meta