Libglycin relied on the Gio.File async API working when used via it's sync API. However, consumers like GNOME Shell, gdk-pixbuf, and Nautilus are exhausting the GTask thread pool via spawning a lot of threads via `g_task_run_in_thread()` blocking on libglycin. Since libglycin can't make any progress on opening or loading files, this leads to a deadlock. While the practice of exhausting GTasks is considered bad practice, there are too many library consumers relying on this behavior to work. Libglycin now uses the sync GIO operations when the sync API is used.
