Commit 0ce08827 authored by Arvind Samptur's avatar Arvind Samptur Committed by Arvind Samptur

when the child fails we need to reap it to avoid a zombie. This would

2002-09-23  Arvind Samptur <arvind.samptur@wipro.com>
        * glib/gspawn.c (fork_exec_with_pipes) : when the child fails
        we need to reap it to avoid a zombie. This would
        happen in case of g_spawn_sync. Fixes #92658
parent 424d06b0
2002-09-23 Arvind Samptur <arvind.samptur@wipro.com>
* glib/gspawn.c (fork_exec_with_pipes) : when the child fails
we need to reap it to avoid a zombie. This would
happen in case of g_spawn_sync. Fixes #92658
2002-09-20 Matthias Clasen <maclas@gmx.de>
* glib/gscanner.c (g_scanner_msg_handler): Don't print
......
2002-09-23 Arvind Samptur <arvind.samptur@wipro.com>
* glib/gspawn.c (fork_exec_with_pipes) : when the child fails
we need to reap it to avoid a zombie. This would
happen in case of g_spawn_sync. Fixes #92658
2002-09-20 Matthias Clasen <maclas@gmx.de>
* glib/gscanner.c (g_scanner_msg_handler): Don't print
......
2002-09-23 Arvind Samptur <arvind.samptur@wipro.com>
* glib/gspawn.c (fork_exec_with_pipes) : when the child fails
we need to reap it to avoid a zombie. This would
happen in case of g_spawn_sync. Fixes #92658
2002-09-20 Matthias Clasen <maclas@gmx.de>
* glib/gscanner.c (g_scanner_msg_handler): Don't print
......
2002-09-23 Arvind Samptur <arvind.samptur@wipro.com>
* glib/gspawn.c (fork_exec_with_pipes) : when the child fails
we need to reap it to avoid a zombie. This would
happen in case of g_spawn_sync. Fixes #92658
2002-09-20 Matthias Clasen <maclas@gmx.de>
* glib/gscanner.c (g_scanner_msg_handler): Don't print
......
2002-09-23 Arvind Samptur <arvind.samptur@wipro.com>
* glib/gspawn.c (fork_exec_with_pipes) : when the child fails
we need to reap it to avoid a zombie. This would
happen in case of g_spawn_sync. Fixes #92658
2002-09-20 Matthias Clasen <maclas@gmx.de>
* glib/gscanner.c (g_scanner_msg_handler): Don't print
......
2002-09-23 Arvind Samptur <arvind.samptur@wipro.com>
* glib/gspawn.c (fork_exec_with_pipes) : when the child fails
we need to reap it to avoid a zombie. This would
happen in case of g_spawn_sync. Fixes #92658
2002-09-20 Matthias Clasen <maclas@gmx.de>
* glib/gscanner.c (g_scanner_msg_handler): Don't print
......
2002-09-23 Arvind Samptur <arvind.samptur@wipro.com>
* glib/gspawn.c (fork_exec_with_pipes) : when the child fails
we need to reap it to avoid a zombie. This would
happen in case of g_spawn_sync. Fixes #92658
2002-09-20 Matthias Clasen <maclas@gmx.de>
* glib/gscanner.c (g_scanner_msg_handler): Don't print
......
......@@ -961,7 +961,7 @@ fork_exec_with_pipes (gboolean intermediate_child,
gint *standard_error,
GError **error)
{
gint pid;
gint pid = -1;
gint stdin_pipe[2] = { -1, -1 };
gint stdout_pipe[2] = { -1, -1 };
gint stderr_pipe[2] = { -1, -1 };
......@@ -1219,6 +1219,26 @@ fork_exec_with_pipes (gboolean intermediate_child,
}
cleanup_and_fail:
/* There was an error from the Child, reap the child to avoid it being
a zombie.
*/
if (pid > 0)
{
wait_failed:
if (waitpid (pid, NULL, 0) < 0)
{
if (errno == EINTR)
goto wait_failed;
else if (errno == ECHILD)
; /* do nothing, child already reaped */
else
g_warning ("waitpid() should not fail in "
"'fork_exec_with_pipes'");
}
}
close_and_invalidate (&child_err_report_pipe[0]);
close_and_invalidate (&child_err_report_pipe[1]);
close_and_invalidate (&child_pid_report_pipe[0]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment