结构
GLibOnce
自版本:2.4 起
说明 [src]
struct GOnce {
volatile GOnceStatus status;
volatile gpointer retval;
}
GOnce 结构控制一次性初始化函数。任何一次性初始化函数都必须有其自己独特的 GOnce 结构。
结构成员
statusGOnce的状态。retval如果
status为G_ONCE_STATUS_READY,则值为函数调用返回的值。
自版本:2.4 起可用
函数
g_once_init_enter
开始一个关键初始化部分时要调用的函数。参数 location 必须指向在初始化部分的结尾设置成 0 以外的值的静态 0 初始化变量。结合 g_once_init_leave() 和独一无二的地址 value_location,可以确保在程序运行时只执行一次初始化部分,并且在初始化完成之前会阻塞并发线程。用于类似这样的结构中。:
自版本:2.14 起
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 起