- EjectMountOp *data;
- GPid child_pid;
- GSource *child_watch;
- GError *error;
-
- data = g_new0 (EjectMountOp, 1);
- data->unix_volume = unix_volume;
- data->error_fd = -1;
-
- task = g_task_new (unix_volume, cancellable, callback, user_data);
- g_task_set_task_data (task, data, (GDestroyNotify) eject_mount_op_free);
-
- error = NULL;
- if (!g_spawn_async_with_pipes (NULL, /* working dir */
- argv,
- NULL, /* envp */
- G_SPAWN_DO_NOT_REAP_CHILD|G_SPAWN_SEARCH_PATH,
- NULL, /* child_setup */
- NULL, /* user_data for child_setup */
- &child_pid,
- NULL, /* standard_input */
- NULL, /* standard_output */
- &(data->error_fd),
- &error))
- {
- g_assert (error != NULL);
- goto handle_error;
- }