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
statusThe status of the
GOnce.retvalThe value returned by the call to the function, if
statusisG_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