Hello guys,

I'm working on a GTK/Glib/Gio application and I use a separate MainLoop for
some dbus communication.

But I observed that a file descriptor was laking in my application.

After few tries, I solved my leak by the following code :

g_main_loop_unref(self->loop);
g_main_context_pop_thread_default(context);

//Is seems necessary to avoid fd leak
g_main_context_pending(context);

g_main_context_acquire(context);
g_main_context_dispatch(context);
g_main_context_release(context);
//Is seems necessary to avoid fd leak

if (g_main_context_pending(context)) {
g_warning("AstLive : Has pending sources");
}

g_main_context_unref(context);

The difference is the usage of g_main_context_pending. I can find any
logical explanation of this, so does anyone can explain to me, why with the
two call to g_main_context_pending my file descriptor is closed, and
without it leaks ?

Thx in advance.
_______________________________________________
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to