GLib.Once¶
Fields¶
Name | Type | Access | Description |
---|---|---|---|
retval | object |
r/w | the value returned by the call to the function, if status is GLib.OnceStatus.READY |
status | GLib.OnceStatus |
r/w | the status of the GLib.Once |
Methods¶
class | init_enter (location) |
class | init_leave (location, result) |
Details¶
-
class
GLib.
Once
¶ A
GLib.Once
struct controls a one-time initialization function. Any one-time initialization function must have its own uniqueGLib.Once
struct.New in version 2.4.
-
classmethod
init_enter
(location)[source]¶ Parameters: location ( object
) – location of a static initializable variable containing 0Returns: True
if the initialization section should be entered,False
and blocks otherwiseReturn type: bool
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
GLib.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:static gsize initialization_value = 0; if (g_once_init_enter (&initialization_value)) { gsize setup_value = 42; // initialization code here g_once_init_leave (&initialization_value, setup_value); } // use initialization_value here
New in version 2.14.
-
classmethod
init_leave
(location, result)[source]¶ Parameters: Counterpart to
GLib.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 inGLib.Once.init_enter
() on this initialization variable.New in version 2.14.
-
classmethod