g_timeout_add 线程安全(Linux、GTK3、X11)吗?
is g_timeout_add thread-safe (Linux, GTK3, X11)?
上下文: 在 Linux/Debian/Sid x86-64 上用于我的 bismon (GPLv3+) software (described here)
(GTK 3.24, Glib 2.62, Xorg server, function register_gui_postponed_BM
, file gui_GTKBM.c
)
问题:
能否从主线程以外的其他线程安全地调用 g_timeout_add
? 我可以很容易地确保调用将被序列化(使用 pthread 互斥体)但是我不能保证它会从主线程调用。线程是 Pthread,不是 Glib 线程。
是的。 boils down to a call to g_source_attach()
, which locks the GMainContext
它将超时源添加到。
上下文: 在 Linux/Debian/Sid x86-64 上用于我的 bismon (GPLv3+) software (described here)
(GTK 3.24, Glib 2.62, Xorg server, function register_gui_postponed_BM
, file gui_GTKBM.c
)
问题:
能否从主线程以外的其他线程安全地调用 g_timeout_add
? 我可以很容易地确保调用将被序列化(使用 pthread 互斥体)但是我不能保证它会从主线程调用。线程是 Pthread,不是 Glib 线程。
是的。 boils down to a call to g_source_attach()
, which locks the GMainContext
它将超时源添加到。