结构

GLibOnce

自版本:2.4 起

说明 [src]

struct GOnce {
  volatile GOnceStatus status;
  volatile gpointer retval;
}

GOnce 结构控制一次性初始化函数。任何一次性初始化函数都必须有其自己独特的 GOnce 结构。

结构成员
status

GOnce 的状态。

retval

如果 statusG_ONCE_STATUS_READY,则值为函数调用返回的值。

自版本:2.4 起可用

函数

g_once_init_enter

开始一个关键初始化部分时要调用的函数。参数 location 必须指向在初始化部分的结尾设置成 0 以外的值的静态 0 初始化变量。结合 g_once_init_leave() 和独一无二的地址 value_location,可以确保在程序运行时只执行一次初始化部分,并且在初始化完成之前会阻塞并发线程。用于类似这样的结构中。:

自版本:2.14 起

g_once_init_enter_impl
没有说明。

g_once_init_enter_pointer

此函数的行为与 g_once_init_enter() 相同,但是可以用来初始化指针(或 #guintptr),而不是 #gsize。

自版本:2.80 起

g_once_init_leave

g_once_init_enter() 的对应部分。需要一个静态 0 初始化的初始化变量的位置,以及 0 以外的初始化值。将变量设置成初始化值,并释放该初始化变量的 g_once_init_enter() 中阻塞的并发线程。

自版本:2.14 起

g_once_init_leave_pointer

g_once_init_enter_pointer() 的对应部分。需要一个静态 NULL 初始化的初始化变量的位置,以及 0 以外的初始化值。将变量设置成初始化值,并释放该初始化变量的 g_once_init_enter_pointer() 中阻塞的并发线程。

自版本:2.80 起

实例方法

g_once_impl
没有说明。