mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-08 18:36:17 +01:00
6a903ff6d7
g_module_symbol() internally calls CreateToolhelp32Snapshot() which in some circumstances returns ERROR_BAD_LENGTH and according to the docs should lead to CreateToolhelp32Snapshot() being retried by the caller. This retry logic was missing and for example led to g_module_symbol() not succeeding if another thread happened to call the wrong function at the wrong time. This got noticed in the g-i build of gtk4 where g-i would call g_module_symbol() on all gtk4 _get_type symbols and while inspecting the properties gtk4 would spawn a thread calling SHGetSpecialFolderLocation() somewhere down the line. During the call to SHGetSpecialFolderLocation() CreateToolhelp32Snapshot() would return with ERROR_BAD_LENGTH for a short period of time and make g_module_symbol() fail, which lead to "Invalid GType function" errors in g-i. Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3213 |
||
---|---|---|
.. | ||
AUTHORS | ||
COPYING | ||
gmodule-ar.c | ||
gmodule-dl.c | ||
gmodule-win32.c | ||
gmodule.c | ||
gmodule.h | ||
gmodule.rc.in | ||
gmoduleconf.h.in | ||
meson.build |