函数
GLibOnceinit_enter
since: 2.14
声明 [src]
gboolean
g_once_init_enter (
void* location
)
描述 [src]
当启动关键初始化章节时要调用的函数。参数 location
必须指向一个静态 0 初始化的变量,该变量将在初始化章节结束时被设置为非 0 的值。与 g_once_init_leave()
和唯一的地址 value_location
结合使用,可以确保初始化章节在一次程序的生命周期内只执行一次,并且直到初始化完成,并发线程将被阻塞。用于此类结构的构造
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
当 location
有 volatile
标识符时,这是一个历史遗迹,传递给它的指针不应为 volatile
。
自从:2.14