timeloop-closure: Fix leaks in test

https://bugzilla.gnome.org/show_bug.cgi?id=711779
This commit is contained in:
Stef Walter 2013-11-10 15:57:12 +01:00
parent d8722441d1
commit bac4179476

View File

@ -122,9 +122,6 @@ input_callback (GIOChannel *source,
{
g_io_channel_close (source);
g_io_channel_close (dest);
g_io_channel_unref (source);
g_io_channel_unref (dest);
n_active_children--;
if (n_active_children == 0)
@ -154,8 +151,15 @@ create_child (void)
source = g_io_create_watch (out_channels[0], G_IO_IN | G_IO_HUP);
g_source_set_closure (source,
g_cclosure_new (G_CALLBACK (input_callback), in_channels[1], NULL));
g_cclosure_new (G_CALLBACK (input_callback), in_channels[1],
(GClosureNotify)g_io_channel_unref));
g_source_attach (source, NULL);
g_source_unref (source);
g_io_channel_unref (in_channels[0]);
g_io_channel_unref (out_channels[0]);
g_io_channel_unref (out_channels[1]);
}
else if (pid == 0) /* Child */
{
@ -216,5 +220,7 @@ main (int argc, char **argv)
difftimeval (&old_usage.ru_stime, &new_usage.ru_stime)) /
(n_iters * n_children));
g_main_loop_unref (loop);
return 0;
}