summaryrefslogtreecommitdiffstats
path: root/bus/dispatch.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-04-05 19:03:40 +0000
committerHavoc Pennington <hp@redhat.com>2003-04-05 19:03:40 +0000
commit2250539aeee0569f8861841d1f5ff16f1539715e (patch)
treecdb7780972379ccac623e51b104e9db7daf401a2 /bus/dispatch.c
parent0cc7669fb899cfe5beb7e0069fe2a71a08b6abaa (diff)
2003-04-05 Havoc Pennington <hp@pobox.com>
* 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.
Diffstat (limited to 'bus/dispatch.c')
-rw-r--r--bus/dispatch.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/bus/dispatch.c b/bus/dispatch.c
index 21d57ae1..6e3a61e3 100644
--- a/bus/dispatch.c
+++ b/bus/dispatch.c
@@ -1070,9 +1070,11 @@ check_existent_service_activation (BusContext *context,
bus_test_run_everything (context);
- /* now wait for the message bus to hear back from the activated service */
- bus_test_run_bus_loop (context);
-
+ if (dbus_connection_get_dispatch_status (connection) ==
+ DBUS_DISPATCH_COMPLETE)
+ /* now wait for the message bus to hear back from the activated service */
+ bus_test_run_bus_loop (context);
+
/* and process everything again */
bus_test_run_everything (context);