mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-12 13:49:22 +01:00
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
This commit is contained in:
parent
424d06b0a1
commit
0ce0882772
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
@ -1,3 +1,8 @@
|
||||
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]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user