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)
|
||||
{
|
||||
g_cancellable_cancel (cancel);
|
||||
return FALSE;
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -734,7 +734,7 @@ main (int argc, char **argv)
|
||||
GError *error = NULL;
|
||||
#ifdef G_OS_UNIX
|
||||
GIOChannel *chan;
|
||||
guint watch;
|
||||
GSource *watch_source = NULL;
|
||||
#endif
|
||||
|
||||
context = g_option_context_new ("lookups ...");
|
||||
@ -768,7 +768,9 @@ main (int argc, char **argv)
|
||||
exit (1);
|
||||
}
|
||||
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);
|
||||
#endif
|
||||
|
||||
@ -792,7 +794,8 @@ main (int argc, char **argv)
|
||||
g_main_loop_unref (loop);
|
||||
|
||||
#ifdef G_OS_UNIX
|
||||
g_source_remove (watch);
|
||||
g_source_destroy (watch_source);
|
||||
g_clear_pointer (&watch_source, g_source_unref);
|
||||
#endif
|
||||
g_object_unref (cancellable);
|
||||
g_option_context_free (context);
|
||||
|
Loading…
x
Reference in New Issue
Block a user