GTK uses g_timeout_add() and g_idle_add(), but GDK's documentation says not to do this
GDK's documentation says:
You should use gdk_threads_add_idle() and gdk_threads_add_timeout() instead of g_idle_add() and g_timeout_add() since libraries not under your control might be using the deprecated GDK locking mechanism. If you are sure that none of the code in your application and libraries use the deprecated gdk_threads_enter() or gdk_threads_leave() methods, then you can safely use g_idle_add() and g_timeout_add().
But GTK itself uses g_idle_add() and g_timeout_add() all over the place, so this guidance fails.