Я рекомендую читать документацию , начиная с связанной функции <a href="https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#g-main-loop-new" rel="nofollow noreferrer">g_main_loop_new()</a>
.
По сути, разрешение glib «владеть» основным циклом вашего приложения облегчает поддержку таких вещей, как «подключаемые» источники событий; где ваше приложение слушает как (например) события, поступающие от GTK + виджетов, так и сетевой сокет или канал Unix. Это те вещи, которые необходимо соединить на довольно низком уровне в главном цикле приложения, и облегчение им позволяет glib владеть этими частями.
Существуют структуры данных glib (например, IO-каналы ), которые совместимы с основным циклом и позволяют добавлять элементы в набор входов, которыми управляет цикл. Для GTK + соединения являются автоматическими, и основной цикл GTK + (<a href="http://developer.gnome.org/gtk3/stable/gtk3-General.html#gtk-main" rel="nofollow noreferrer">gtk_main()</a>
) оборачивает глибы.