diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2013-09-13 14:04:45 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2013-09-13 14:04:45 +0100 |
commit | ca99f0142b0bf9b5c5331065c3a51ba1c9e54478 (patch) | |
tree | 8a33e570d26ded601e87fe6caddf0a118baf81cf /dbus/dbus-spawn.c | |
parent | dd71688e5d5fe2bdca8b3c0b090a40d053100a4f (diff) | |
parent | 1c95955cbc6e816dd50a9d66846c11b44d703a1f (diff) | |
download | dbus-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.c | 13 |
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", |