unsigned int condition,
void *data)
{
- DBusConnection *connection = data;
- dbus_bool_t retval;
-
- dbus_connection_ref (connection);
-
- retval = dbus_connection_handle_watch (connection, watch, condition);
-
- dbus_connection_unref (connection);
-
- return retval;
+ /* FIXME this can be done in dbus-mainloop.c
+ * if the code in activation.c for the babysitter
+ * watch handler is fixed.
+ */
+
+ return dbus_watch_handle (watch, condition);
}
static dbus_bool_t
{
if (client_loop == NULL)
return;
+
+ /* dispatch before we block so pending dispatches
+ * won't make our block return early
+ */
+ _dbus_loop_dispatch (client_loop);
/* Do one blocking wait, since we're expecting data */
- _dbus_loop_iterate (client_loop, block_once);
+ if (block_once)
+ {
+ _dbus_verbose ("---> blocking on \"client side\"\n");
+ _dbus_loop_iterate (client_loop, TRUE);
+ }
/* Then mop everything up */
while (_dbus_loop_iterate (client_loop, FALSE))
bus_test_run_bus_loop (BusContext *context,
dbus_bool_t block_once)
{
+ /* dispatch before we block so pending dispatches
+ * won't make our block return early
+ */
+ _dbus_loop_dispatch (bus_context_get_loop (context));
+
/* Do one blocking wait, since we're expecting data */
- _dbus_loop_iterate (bus_context_get_loop (context), block_once);
+ if (block_once)
+ {
+ _dbus_verbose ("---> blocking on \"server side\"\n");
+ _dbus_loop_iterate (bus_context_get_loop (context), TRUE);
+ }
/* Then mop everything up */
while (_dbus_loop_iterate (bus_context_get_loop (context), FALSE))
void
bus_test_run_everything (BusContext *context)
{
- int i;
-
- i = 0;
- while (i < 2)
- {
- while (_dbus_loop_iterate (bus_context_get_loop (context), FALSE) ||
- (client_loop == NULL || _dbus_loop_iterate (client_loop, FALSE)))
- ;
- ++i;
- }
+ while (_dbus_loop_iterate (bus_context_get_loop (context), FALSE) ||
+ (client_loop == NULL || _dbus_loop_iterate (client_loop, FALSE)))
+ ;
}
BusContext*