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.Oncestruct controls a one-time initialization function. Any one-time initialization function must have its own unique- GLib.Oncestruct.- New in version 2.4. - 
classmethod init_enter(location)[source]¶
- Parameters: - location ( - object) – location of a static initializable variable containing 0- Returns: - Trueif the initialization section should be entered,- Falseand blocks otherwise- Return 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 in- GLib.Once.init_enter() on this initialization variable.- New in version 2.14. 
 
- 
classmethod