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
Function to be called when starting a critical initialization section. The argument
locationmust 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 withg_once_init_leave()and the unique addressvalue_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:While
locationhas avolatilequalifier, this is a historical artifact and the pointer passed to it should not bevolatile.