Partially revert "Merge waitpid() from g_spawn_sync into gmain()"
authorRyan Lortie <desrt@desrt.ca>
Tue, 23 Apr 2013 17:26:48 +0000 (13:26 -0400)
committerRyan Lortie <desrt@desrt.ca>
Tue, 23 Apr 2013 18:39:09 +0000 (14:39 -0400)
commiteb860fd898a6a2bd86c11d245294cd0e8cd4304b
tree80be5c0ee24a06840e5e8eb48cdd1a9dd2a8067e
parentc91af2ab44c20556f3d3493edff686cf77137fda
Partially revert "Merge waitpid() from g_spawn_sync into gmain()"

This partially reverts commit ce0022933c255313e010b27f977f4ae02aad1e7e.

It used to be safe to use g_spawn_sync() from processes that had their
own SIGCHLD handler because it simply called wait().  When it was
changed to depend on the GLib child watching infrastructure this meant
that GLib had to own the SIGCHLD handler.

This caused hangs in at least Pidgin.

The patch contained two other improvements to the child watch code which
we want to keep, so only revert the changes to gspawn itself.

https://bugzilla.gnome.org/show_bug.cgi?id=698081
glib/gspawn.c