Class Once

All Implemented Interfaces:
PointerInterface

public class Once extends Record
A #GOnce struct controls a one-time initialization function. Any
one-time initialization function must have its own unique #GOnce
struct.

https://docs.gtk.org/glib/struct.Once.html

  • Field Details

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • setFieldStatus

      public void setFieldStatus(int status)
      the status of the #GOnce
    • getFieldStatus

      public int getFieldStatus()
      the status of the #GOnce
    • impl

      public Pointer impl(Once.OnThreadFunc func, @Nullable Pointer arg)
      Parameters:
      func -
      arg -
      Returns:
    • initEnter

      public static boolean initEnter(@Nonnull Pointer location)
      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:
      <!-- language="C" -->
         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 - location of a static initializable variable containing 0
      Returns:
      %TRUE if the initialization section should be entered, %FALSE and blocks otherwise
    • initLeave

      public static void initLeave(@Nonnull Pointer location, long result)
      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 - location of a static initializable variable containing 0
      result - new non-0 value for *@value_location