X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgsubprocess.c;h=999d777e4f8d07c7b2b63cf405e1a364d1b349f7;hb=33b9935efc82f8cc4747dfea2743129dfc418d19;hp=58995809c888d2010c09590b95d79b788e1eb130;hpb=323242578524a1b6355d8451015b14ca75aa0afa;p=platform%2Fupstream%2Fglib.git diff --git a/gio/gsubprocess.c b/gio/gsubprocess.c index 5899580..999d777 100644 --- a/gio/gsubprocess.c +++ b/gio/gsubprocess.c @@ -71,8 +71,8 @@ * change of working directory, child setup functions, etc). * * A typical use of #GSubprocess will involve calling - * g_subprocess_new(), followed by g_subprocess_wait() or - * g_subprocess_wait_sync(). After the process exits, the status can be + * g_subprocess_new(), followed by g_subprocess_wait_async() or + * g_subprocess_wait(). After the process exits, the status can be * checked using functions such as g_subprocess_get_if_exited() (which * are similar to the familiar WIFEXITED-style POSIX macros). * @@ -610,12 +610,15 @@ g_subprocess_finalize (GObject *object) g_clear_object (&self->stderr_pipe); g_strfreev (self->argv); + g_mutex_clear (&self->pending_waits_lock); + G_OBJECT_CLASS (g_subprocess_parent_class)->finalize (object); } static void g_subprocess_init (GSubprocess *self) { + g_mutex_init (&self->pending_waits_lock); } static void @@ -646,8 +649,8 @@ g_subprocess_class_init (GSubprocessClass *class) * g_subprocess_new: (skip) * @flags: flags that define the behaviour of the subprocess * @error: (allow-none): return location for an error, or %NULL - * @argv0: first commandline argument to pass to the subprocess, - * followed by more arguments, followed by %NULL + * @argv0: first commandline argument to pass to the subprocess + * @...: more commandline arguments, followed by %NULL * * Create a new process with the given flags and varargs argument * list. By default, matching the g_spawn_async() defaults, the @@ -683,6 +686,7 @@ g_subprocess_new (GSubprocessFlags flags, while ((arg = va_arg (ap, const gchar *))) g_ptr_array_add (args, (gchar *) arg); g_ptr_array_add (args, NULL); + va_end (ap); result = g_subprocess_newv ((const gchar * const *) args->pdata, flags, error); @@ -724,8 +728,8 @@ g_subprocess_newv (const gchar * const *argv, * g_subprocess_get_identifier: * @subprocess: a #GSubprocess * - * On UNIX, returns the process ID as a decimal string. On Windows, - * returns the result of GetProcessId() also as a string. + * On UNIX, returns the process ID as a decimal string. + * On Windows, returns the result of GetProcessId() also as a string. */ const gchar * g_subprocess_get_identifier (GSubprocess *subprocess) @@ -937,6 +941,9 @@ g_subprocess_sync_complete (GAsyncResult **result) * This function does not fail in the case of the subprocess having * abnormal termination. See g_subprocess_wait_check() for that. * + * Cancelling @cancellable doesn't kill the subprocess. Call + * g_subprocess_force_exit() if it is desirable. + * * Returns: %TRUE on success, %FALSE if @cancellable was cancelled * * Since: 2.40 @@ -1417,7 +1424,7 @@ g_subprocess_communicate_made_progress (GObject *source_object, source == state->stdout_buf || source == state->stderr_buf) { - if (!g_output_stream_splice_finish ((GOutputStream*)source, result, &error)) + if (g_output_stream_splice_finish ((GOutputStream*) source, result, &error) == -1) goto out; if (source == state->stdout_buf || @@ -1765,7 +1772,7 @@ g_subprocess_communicate_utf8 (GSubprocess *subprocess, * @callback: Callback * @user_data: User data * - * Asynchronous version of g_subprocess_communicate_utf(). Complete + * Asynchronous version of g_subprocess_communicate_utf8(). Complete * invocation with g_subprocess_communicate_utf8_finish(). */ void