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:
GOnceStatus
The status of the
GOnce
.retval:
volatile gpointer
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