Close the process handle if the caller doesn't want it also in the case

2005-03-20  Tor Lillqvist  <tml@novell.com>

	* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process
	handle if the caller doesn't want it also in the case without a
	helper process.
	(g_spawn_sync): Don't ask for a child pid which we don't need.
This commit is contained in:
Tor Lillqvist
2005-03-20 11:52:51 +00:00
committed by Tor Lillqvist
parent 199da9b9b0
commit 24b14aa184
5 changed files with 41 additions and 7 deletions

View File

@@ -1,3 +1,10 @@
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process
handle if the caller doesn't want it also in the case without a
helper process.
(g_spawn_sync): Don't ask for a child pid which we don't need.
2005-03-17 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c: Update the documentation, reflecting the

View File

@@ -1,3 +1,10 @@
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process
handle if the caller doesn't want it also in the case without a
helper process.
(g_spawn_sync): Don't ask for a child pid which we don't need.
2005-03-17 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c: Update the documentation, reflecting the

View File

@@ -1,3 +1,10 @@
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process
handle if the caller doesn't want it also in the case without a
helper process.
(g_spawn_sync): Don't ask for a child pid which we don't need.
2005-03-17 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c: Update the documentation, reflecting the

View File

@@ -1,3 +1,10 @@
2005-03-20 Tor Lillqvist <tml@novell.com>
* glib/gspawn-win32.c (do_spawn_with_pipes): Close the process
handle if the caller doesn't want it also in the case without a
helper process.
(g_spawn_sync): Don't ask for a child pid which we don't need.
2005-03-17 Matthias Clasen <mclasen@redhat.com>
* glib/gkeyfile.c: Update the documentation, reflecting the

View File

@@ -444,9 +444,18 @@ do_spawn_with_pipes (gboolean dont_wait,
goto cleanup_and_fail;
}
if (child_handle && dont_wait && !dont_return_handle)
*child_handle = (GPid) rc;
else if (!dont_wait && exit_status)
if (dont_wait)
{
if (child_handle && !dont_return_handle)
*child_handle = (GPid) rc;
else
{
CloseHandle (rc);
if (child_handle)
*child_handle = 0;
}
}
else if (exit_status)
*exit_status = rc;
return TRUE;
@@ -685,7 +694,6 @@ g_spawn_sync (const gchar *working_directory,
gint outpipe = -1;
gint errpipe = -1;
gint reportpipe = -1;
GPid pid;
GIOChannel *outchannel = NULL;
GIOChannel *errchannel = NULL;
GPollFD outfd, errfd;
@@ -723,7 +731,7 @@ g_spawn_sync (const gchar *working_directory,
flags,
child_setup,
user_data,
&pid,
NULL,
NULL,
standard_output ? &outpipe : NULL,
standard_error ? &errpipe : NULL,
@@ -890,8 +898,6 @@ g_spawn_sync (const gchar *working_directory,
if (errpipe >= 0)
close_and_invalidate (&errpipe);
g_spawn_close_pid (pid);
if (failed)
{
if (outstr)