From 2250539aeee0569f8861841d1f5ff16f1539715e Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 5 Apr 2003 19:03:40 +0000 Subject: 2003-04-05 Havoc Pennington * bus/loop.c (bus_loop_iterate): fix the timeout code, using magic from GLib * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid to -1 once we've reaped the babysitter (_dbus_babysitter_handle_watch): do as much work as we can, not just one go of it * bus/activation.c: add code using DBusBabysitter so that we handle it when a service fails to start up properly. (bus_activation_service_created): don't remove the activation entries as we go, just let them get removed when we free the pending activation. Unref reply messages after sending them. --- dbus/dbus-spawn.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'dbus/dbus-spawn.c') diff --git a/dbus/dbus-spawn.c b/dbus/dbus-spawn.c index 5ced84fc..5fa2d5e8 100644 --- a/dbus/dbus-spawn.c +++ b/dbus/dbus-spawn.c @@ -293,6 +293,8 @@ _dbus_babysitter_unref (DBusBabysitter *sitter) else _dbus_verbose ("Babysitter exited abnormally\n"); } + + sitter->sitter_pid = -1; } if (sitter->error_watch) @@ -699,6 +701,10 @@ _dbus_babysitter_handle_watch (DBusBabysitter *sitter, handle_error_pipe (sitter, revents); else if (fd == sitter->socket_to_babysitter) handle_babysitter_socket (sitter, revents); + + while (LIVE_CHILDREN (sitter) && + babysitter_iteration (sitter, FALSE)) + ; return TRUE; } -- cgit