Struct
GLibOnce
since: 2.4
Description
struct GOnce {
volatile GOnceStatus status;
volatile gpointer retval;
}
A GOnce
struct controls a one-time initialization function. Any
one-time initialization function must have its own unique GOnce
struct.
Structure members
status
The status of the
GOnce
.retval
The value returned by the call to the function, if
status
isG_ONCE_STATUS_READY
.
Available since: 2.4
Functions
g_once_init_enter
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
g_once_init_leave()
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:
since: 2.14
g_once_init_leave
Counterpart to g_once_init_enter(). 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 g_once_init_enter()
on this
initialization variable.
since: 2.14