mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-27 12:42:10 +01:00
tests: Fix cancellation source handling in resolver manual test
If `async_cancel()` was invoked, it would remove the IO watch source, which would cause the `g_source_remove()` call at the end of `main()` to warn about an unknown source ID. Fix that by handling the source as a pointer instead of a handle. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
parent
2ac66413a4
commit
1c4384aec5
@ -689,7 +689,7 @@ static gboolean
|
|||||||
async_cancel (GIOChannel *source, GIOCondition cond, gpointer cancel)
|
async_cancel (GIOChannel *source, GIOCondition cond, gpointer cancel)
|
||||||
{
|
{
|
||||||
g_cancellable_cancel (cancel);
|
g_cancellable_cancel (cancel);
|
||||||
return FALSE;
|
return G_SOURCE_REMOVE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -734,7 +734,7 @@ main (int argc, char **argv)
|
|||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
#ifdef G_OS_UNIX
|
#ifdef G_OS_UNIX
|
||||||
GIOChannel *chan;
|
GIOChannel *chan;
|
||||||
guint watch;
|
GSource *watch_source = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
context = g_option_context_new ("lookups ...");
|
context = g_option_context_new ("lookups ...");
|
||||||
@ -768,7 +768,9 @@ main (int argc, char **argv)
|
|||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
chan = g_io_channel_unix_new (cancel_fds[0]);
|
chan = g_io_channel_unix_new (cancel_fds[0]);
|
||||||
watch = g_io_add_watch (chan, G_IO_IN, async_cancel, cancellable);
|
watch_source = g_io_create_watch (chan, G_IO_IN);
|
||||||
|
g_source_set_callback (watch_source, (GSourceFunc) async_cancel, cancellable, NULL);
|
||||||
|
g_source_attach (watch_source, NULL);
|
||||||
g_io_channel_unref (chan);
|
g_io_channel_unref (chan);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -792,7 +794,8 @@ main (int argc, char **argv)
|
|||||||
g_main_loop_unref (loop);
|
g_main_loop_unref (loop);
|
||||||
|
|
||||||
#ifdef G_OS_UNIX
|
#ifdef G_OS_UNIX
|
||||||
g_source_remove (watch);
|
g_source_destroy (watch_source);
|
||||||
|
g_clear_pointer (&watch_source, g_source_unref);
|
||||||
#endif
|
#endif
|
||||||
g_object_unref (cancellable);
|
g_object_unref (cancellable);
|
||||||
g_option_context_free (context);
|
g_option_context_free (context);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user