Struct
GLibOnce
since: 2.4
Description [src]
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_enter_pointer
This functions behaves in the same way as g_once_init_enter(), but can can be used to initialize pointers (or #guintptr) instead of #gsize.
since: 2.80
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
g_once_init_leave_pointer
Counterpart to g_once_init_enter_pointer(). Expects a location of a static
NULL
-initialized initialization variable, and an initialization value
other than NULL
. Sets the variable to the initialization value, and
releases concurrent threads blocking in g_once_init_enter_pointer()
on this
initialization variable.
since: 2.80