Hi, On Thu, 2019-03-14 at 00:09 +0100, Enrico Mioso wrote: > I am facing an issue, where it seems I am not deallocating correctly > an UNIX signal source. I use > my_state->unix_signals_src = g_unix_signal_source_new(SIGINT); > g_source_set_callback(my_state->unix_signals_src, my_unix_signals_cb, > my_state, NULL); > my_state->unix_signals_src_tag = g_source_attach(my_state- > >unix_signals_src, my_state->ctx); > g_source_unref(my_state->unix_signals_src); > > then, on the exit path of my program, I have something like: > > if (!my_state->sigint_received) > g_source_destroy(my_state->unix_signals_src); > > my_state->unix_signals_src_tag = 0;
This code seems fine to me, within the context you’ve provided. I assume you’re also correctly unreffing the GMainContext at the end of your program. > This output can be obtained even using the glib.supp file as found in > glib repository. > Looking at the file specified by valgrind, glib-unix.c, line 222, I > can see: > return _g_main_create_unix_signal_watch (signum); That valgrind trace looks like an intentional one-time leak, since the allocation is within pthread_create(). I’d be very happy to accept a patch to GLib to add this to glib.supp. ☺ Philip
_______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list