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 19:00:01 +0000 (15:00 -0400)
commitf3b1054b0ebb4912f700e08da0c3d35c30113e79
tree9b259705a33c239641b884885b443d5246c8d9f3
parent7304bbd5d8ad56dcf3ee9fadf74f6104c49d4df7
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