[maemo-commits] [maemo-commits] r17999 - in projects/haf/trunk/glib: . gio
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Apr 2 15:29:34 EEST 2009
- Previous message: [maemo-commits] r17998 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Next message: [maemo-commits] r18000 - in projects/haf/trunk/libmatchbox2: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2009-04-02 15:29:32 +0300 (Thu, 02 Apr 2009) New Revision: 17999 Modified: projects/haf/trunk/glib/ChangeLog projects/haf/trunk/glib/gio/gunixmount.c Log: 2009-04-02 Michael Natterer <mitch at landeo.com> Bug NB#107184 ?\226?\128?\147 Gio/GVfs don't emit GVolumeMonitor::mount-pre-unmount Applied patch from Carlos Garnacho: * gio/gunixmount.c (eject_unmount_cb) (eject_unmount_do_cb) (eject_unmount_do): Emit ::mount-pre-unmount and wait 500msec before actually trying to unmount. Modified: projects/haf/trunk/glib/ChangeLog =================================================================== --- projects/haf/trunk/glib/ChangeLog 2009-04-02 11:58:44 UTC (rev 17998) +++ projects/haf/trunk/glib/ChangeLog 2009-04-02 12:29:32 UTC (rev 17999) @@ -1,3 +1,13 @@ +2009-04-02 Michael Natterer <mitch at landeo.com> + + Bug NB#107184 – Gio/GVfs don't emit GVolumeMonitor::mount-pre-unmount + + Applied patch from Carlos Garnacho: + + * gio/gunixmount.c (eject_unmount_cb) (eject_unmount_do_cb) + (eject_unmount_do): Emit ::mount-pre-unmount and wait 500msec before + actually trying to unmount. + 2009-04-01 16:30:07 Tim Janik <timj at lanedo.com> * configure.in: use generic ARM platform tests to determine Modified: projects/haf/trunk/glib/gio/gunixmount.c =================================================================== --- projects/haf/trunk/glib/gio/gunixmount.c 2009-04-02 11:58:44 UTC (rev 17998) +++ projects/haf/trunk/glib/gio/gunixmount.c 2009-04-02 12:29:32 UTC (rev 17999) @@ -242,6 +242,7 @@ GIOChannel *error_channel; guint error_channel_source_id; GString *error_string; + gchar **argv; } UnmountEjectOp; static void @@ -276,6 +277,7 @@ g_source_remove (data->error_channel_source_id); g_io_channel_unref (data->error_channel); g_string_free (data->error_string, TRUE); + g_strfreev (data->argv); close (data->error_fd); g_spawn_close_pid (pid); g_free (data); @@ -316,27 +318,15 @@ return TRUE; } -static void -eject_unmount_do (GMount *mount, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data, - char **argv) +static gboolean +eject_unmount_do_cb (gpointer user_data) { - GUnixMount *unix_mount = G_UNIX_MOUNT (mount); - UnmountEjectOp *data; + UnmountEjectOp *data = (UnmountEjectOp *) user_data; GPid child_pid; - GError *error; - - data = g_new0 (UnmountEjectOp, 1); - data->unix_mount = unix_mount; - data->callback = callback; - data->user_data = user_data; - data->cancellable = cancellable; - - error = NULL; + GError *error = NULL; + if (!g_spawn_async_with_pipes (NULL, /* working dir */ - argv, + data->argv, NULL, /* envp */ G_SPAWN_DO_NOT_REAP_CHILD|G_SPAWN_SEARCH_PATH, NULL, /* child_setup */ @@ -376,12 +366,38 @@ if (data->error_channel != NULL) g_io_channel_unref (data->error_channel); + g_strfreev (data->argv); g_error_free (error); g_free (data); } + + return FALSE; } static void +eject_unmount_do (GMount *mount, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data, + char **argv) +{ + GUnixMount *unix_mount = G_UNIX_MOUNT (mount); + UnmountEjectOp *data; + + data = g_new0 (UnmountEjectOp, 1); + data->unix_mount = unix_mount; + data->callback = callback; + data->user_data = user_data; + data->cancellable = cancellable; + data->argv = g_strdupv (argv); + + if (unix_mount->volume_monitor != NULL) + g_signal_emit_by_name (unix_mount->volume_monitor, "mount-pre-unmount", mount); + + g_timeout_add (500, (GSourceFunc) eject_unmount_do_cb, data); +} + +static void g_unix_mount_unmount (GMount *mount, GMountUnmountFlags flags, GCancellable *cancellable,
- Previous message: [maemo-commits] r17998 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Next message: [maemo-commits] r18000 - in projects/haf/trunk/libmatchbox2: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]