Gjsify LogoGjsify Logo

A #GOnce struct controls a one-time initialization function. Any one-time initialization function must have its own unique #GOnce struct.

record

Hierarchy

  • Once

Index

Constructors

Properties

retval: object

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

field
status: OnceStatus

the status of the #GOnce

field
name: string

Methods

  • init_enter(location: object): boolean
  • 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:

      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

    While location has a volatile qualifier, this is a historical artifact and the pointer passed to it should not be volatile.

    Parameters

    • location: object

      location of a static initializable variable containing 0

    Returns boolean

  • init_leave(location: object, result: number): void
  • 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.

    While location has a volatile qualifier, this is a historical artifact and the pointer passed to it should not be volatile.

    Parameters

    • location: object

      location of a static initializable variable containing 0

    • result: number

      new non-0 value for *value_location

    Returns void

Legend

  • Module
  • Object literal
  • Variable
  • Function
  • Function with type parameter
  • Index signature
  • Type alias
  • Type alias with type parameter
  • Enumeration
  • Enumeration member
  • Property
  • Method
  • Interface
  • Interface with type parameter
  • Constructor
  • Property
  • Method
  • Index signature
  • Class
  • Class with type parameter
  • Constructor
  • Property
  • Method
  • Accessor
  • Index signature
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Protected property
  • Protected method
  • Protected accessor
  • Private property
  • Private method
  • Private accessor
  • Static property
  • Static method