since: 2.4


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

The status of the GOnce.


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

Available since: 2.4



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


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

Instance methods

No description available.

since: 2.0