The problem is probably specific to Unix. The backtrace shows that glib hangs in read() (via g_io_read_chars(), via Geanys spawn API), even though gio signals readiness for the input. The input fd comes from openpty()
I wonder...if gio works properly with file descriptions that come openpty()?