summaryrefslogtreecommitdiff
path: root/dbus/dbus-spawn.c
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2013-09-13 14:04:45 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2013-09-13 14:04:45 +0100
commitca99f0142b0bf9b5c5331065c3a51ba1c9e54478 (patch)
tree8a33e570d26ded601e87fe6caddf0a118baf81cf /dbus/dbus-spawn.c
parentdd71688e5d5fe2bdca8b3c0b090a40d053100a4f (diff)
parent1c95955cbc6e816dd50a9d66846c11b44d703a1f (diff)
downloaddbus-ca99f0142b0bf9b5c5331065c3a51ba1c9e54478.tar.gz
Merge branch 'dbus-1.6'
Conflicts: NEWS configure.ac
Diffstat (limited to 'dbus/dbus-spawn.c')
-rw-r--r--dbus/dbus-spawn.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/dbus/dbus-spawn.c b/dbus/dbus-spawn.c
index f8d5fd1c..8965b587 100644
--- a/dbus/dbus-spawn.c
+++ b/dbus/dbus-spawn.c
@@ -308,15 +308,18 @@ _dbus_babysitter_unref (DBusBabysitter *sitter)
if (ret == 0)
kill (sitter->sitter_pid, SIGKILL);
- again:
if (ret == 0)
- ret = waitpid (sitter->sitter_pid, &status, 0);
+ {
+ do
+ {
+ ret = waitpid (sitter->sitter_pid, &status, 0);
+ }
+ while (_DBUS_UNLIKELY (ret < 0 && errno == EINTR));
+ }
if (ret < 0)
{
- if (errno == EINTR)
- goto again;
- else if (errno == ECHILD)
+ if (errno == ECHILD)
_dbus_warn ("Babysitter process not available to be reaped; should not happen\n");
else
_dbus_warn ("Unexpected error %d in waitpid() for babysitter: %s\n",