Package ch.bailu.gtk.glib
Class Once
java.lang.Object
ch.bailu.gtk.type.Type
ch.bailu.gtk.type.Pointer
ch.bailu.gtk.type.Record
ch.bailu.gtk.glib.Once
- All Implemented Interfaces:
PointerInterface
A #GOnce struct controls a one-time initialization function. Any
one-time initialization function must have its own unique #GOnce
struct.
one-time initialization function must have its own unique #GOnce
struct.
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic ClassHandler
int
the status of the #GOnceimpl
(Once.OnThreadFunc func, Pointer arg) static boolean
Function to be called when starting a critical initialization
section.static void
Counterpart to g_once_init_enter().void
setFieldStatus
(int status) the status of the #GOnceMethods inherited from class ch.bailu.gtk.type.Pointer
asCPointer, cast, connectSignal, disconnectSignals, disconnectSignals, equals, hashCode, throwIfNull, throwNullPointerException, toString, unregisterCallbacks, unregisterCallbacks
Methods inherited from class ch.bailu.gtk.type.Type
asCPointer, asCPointer, asCPointerNotNull, asJnaPointer, asJnaPointer, asPointer, asPointer, cast, cast, throwIfNull
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface ch.bailu.gtk.type.PointerInterface
asCPointerNotNull, asJnaPointer, asPointer, isNotNull, isNull
-
Field Details
-
STATUS
the status of the #GOnce- See Also:
-
-
Constructor Details
-
Once
-
-
Method Details
-
getClassHandler
-
setFieldStatus
public void setFieldStatus(int status) the status of the #GOnce -
getFieldStatus
public int getFieldStatus()the status of the #GOnce -
impl
- Parameters:
func
-arg
-- Returns:
-
initEnter
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
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 0result
- new non-0 value for *@value_location
-