Support g_main_context_push_thread_default() in gio

GFile allows for the possibility that external implementations may not
support thread-default contexts yet, via
g_file_supports_thread_contexts(). GVolumeMonitor is not yet
thread-default-context aware.

Add a test program to verify that basic gio async ops work correctly
in non-default contexts.

http://bugzilla.gnome.org/show_bug.cgi?id=579984
This commit is contained in:
Dan Winship
2009-06-16 20:22:58 -04:00
parent 4363f1932f
commit 65cc5d895a
23 changed files with 474 additions and 121 deletions

View File

@@ -361,11 +361,11 @@ eject_unmount_do_cb (gpointer user_data)
data->error_channel_source = g_io_create_watch (data->error_channel, G_IO_IN);
g_source_set_callback (data->error_channel_source,
(GSourceFunc) eject_unmount_read_error, data, NULL);
g_source_attach (data->error_channel_source, NULL);
g_source_attach (data->error_channel_source, g_main_context_get_thread_default ());
child_watch = g_child_watch_source_new (child_pid);
g_source_set_callback (child_watch, (GSourceFunc) eject_unmount_cb, data, NULL);
g_source_attach (child_watch, NULL);
g_source_attach (child_watch, g_main_context_get_thread_default ());
g_source_unref (child_watch);
handle_error: