Add a stub _dbus_loop_toggle_watch and call it where needed
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Mon, 24 Jan 2011 17:11:52 +0000 (17:11 +0000)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Mon, 13 Jun 2011 16:30:43 +0000 (17:30 +0100)
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=33337
Bug-NB: NB#197191

bus/activation.c
bus/bus.c
bus/connection.c
bus/test.c
dbus/dbus-mainloop.c
dbus/dbus-mainloop.h
test/test-utils.c

index d5424a7..149ae49 100644 (file)
@@ -1426,6 +1426,16 @@ remove_babysitter_watch (DBusWatch      *watch,
                            watch);
 }
 
+static void
+toggle_babysitter_watch (DBusWatch      *watch,
+                         void           *data)
+{
+  BusPendingActivation *pending_activation = data;
+
+  _dbus_loop_toggle_watch (bus_context_get_loop (pending_activation->activation->context),
+                           watch);
+}
+
 static dbus_bool_t
 pending_activation_timed_out (void *data)
 {
@@ -2110,7 +2120,7 @@ bus_activation_activate_service (BusActivation  *activation,
   if (!_dbus_babysitter_set_watch_functions (pending_activation->babysitter,
                                              add_babysitter_watch,
                                              remove_babysitter_watch,
-                                             NULL,
+                                             toggle_babysitter_watch,
                                              pending_activation,
                                              NULL))
     {
index 04b1286..9e35301 100644 (file)
--- a/bus/bus.c
+++ b/bus/bus.c
@@ -126,6 +126,18 @@ remove_server_watch (DBusWatch  *watch,
   _dbus_loop_remove_watch (context->loop, watch);
 }
 
+static void
+toggle_server_watch (DBusWatch  *watch,
+                     void       *data)
+{
+  DBusServer *server = data;
+  BusContext *context;
+
+  context = server_get_context (server);
+
+  _dbus_loop_toggle_watch (context->loop, watch);
+}
+
 static dbus_bool_t
 add_server_timeout (DBusTimeout *timeout,
                     void        *data)
@@ -228,7 +240,7 @@ setup_server (BusContext *context,
   if (!dbus_server_set_watch_functions (server,
                                         add_server_watch,
                                         remove_server_watch,
-                                        NULL,
+                                        toggle_server_watch,
                                         server,
                                         NULL))
     {
index d74b326..5d17a2f 100644 (file)
@@ -312,6 +312,15 @@ remove_connection_watch (DBusWatch      *watch,
   _dbus_loop_remove_watch (connection_get_loop (connection), watch);
 }
 
+static void
+toggle_connection_watch (DBusWatch      *watch,
+                         void           *data)
+{
+  DBusConnection *connection = data;
+
+  _dbus_loop_toggle_watch (connection_get_loop (connection), watch);
+}
+
 static dbus_bool_t
 add_connection_timeout (DBusTimeout    *timeout,
                         void           *data)
@@ -624,7 +633,7 @@ bus_connections_setup_connection (BusConnections *connections,
   if (!dbus_connection_set_watch_functions (connection,
                                             add_connection_watch,
                                             remove_connection_watch,
-                                            NULL,
+                                            toggle_connection_watch,
                                             connection,
                                             NULL))
     goto out;
index 049fae6..671a173 100644 (file)
@@ -54,6 +54,13 @@ remove_client_watch (DBusWatch      *watch,
   _dbus_loop_remove_watch (client_loop, watch);
 }
 
+static void
+toggle_client_watch (DBusWatch      *watch,
+                     void           *data)
+{
+  _dbus_loop_toggle_watch (client_loop, watch);
+}
+
 static dbus_bool_t
 add_client_timeout (DBusTimeout    *timeout,
                     void           *data)
@@ -120,7 +127,7 @@ bus_setup_debug_client (DBusConnection *connection)
   if (!dbus_connection_set_watch_functions (connection,
                                             add_client_watch,
                                             remove_client_watch,
-                                            NULL,
+                                            toggle_client_watch,
                                             connection,
                                             NULL))
     goto out;
index e506b37..3cb5e70 100644 (file)
@@ -289,6 +289,13 @@ _dbus_loop_add_watch (DBusLoop  *loop,
 }
 
 void
+_dbus_loop_toggle_watch (DBusLoop          *loop,
+                         DBusWatch         *watch)
+{
+  /* stub */
+}
+
+void
 _dbus_loop_remove_watch (DBusLoop         *loop,
                          DBusWatch        *watch)
 {
index a3417ad..a76cb6f 100644 (file)
@@ -41,6 +41,8 @@ dbus_bool_t _dbus_loop_add_watch      (DBusLoop            *loop,
                                        DBusWatch           *watch);
 void        _dbus_loop_remove_watch   (DBusLoop            *loop,
                                        DBusWatch           *watch);
+void        _dbus_loop_toggle_watch   (DBusLoop            *loop,
+                                       DBusWatch           *watch);
 dbus_bool_t _dbus_loop_add_timeout    (DBusLoop            *loop,
                                        DBusTimeout         *timeout);
 void        _dbus_loop_remove_timeout (DBusLoop            *loop,
index 4fd84fe..c3c3ed3 100644 (file)
@@ -26,6 +26,15 @@ remove_watch (DBusWatch *watch,
   _dbus_loop_remove_watch (cd->loop, watch);
 }
 
+static void
+toggle_watch (DBusWatch  *watch,
+              void       *data)
+{
+  CData *cd = data;
+
+  _dbus_loop_toggle_watch (cd->loop, watch);
+}
+
 static dbus_bool_t
 add_timeout (DBusTimeout *timeout,
             void        *data)
@@ -103,15 +112,10 @@ test_connection_setup (DBusLoop       *loop,
   if (cd == NULL)
     goto nomem;
 
-  /* Because dbus-mainloop.c checks dbus_timeout_get_enabled(),
-   * dbus_watch_get_enabled() directly, we don't have to provide
-   * "toggled" callbacks.
-   */
-  
   if (!dbus_connection_set_watch_functions (connection,
                                             add_watch,
                                             remove_watch,
-                                            NULL,
+                                            toggle_watch,
                                             cd, cdata_free))
     goto nomem;
 
@@ -213,6 +217,15 @@ add_server_watch (DBusWatch  *watch,
 }
 
 static void
+toggle_server_watch (DBusWatch  *watch,
+                     void       *data)
+{
+  ServerData *context = data;
+
+  _dbus_loop_toggle_watch (context->loop, watch);
+}
+
+static void
 remove_server_watch (DBusWatch  *watch,
                      void       *data)
 {
@@ -252,7 +265,7 @@ test_server_setup (DBusLoop      *loop,
   if (!dbus_server_set_watch_functions (server,
                                         add_server_watch,
                                         remove_server_watch,
-                                        NULL,
+                                        toggle_server_watch,
                                         sd,
                                         serverdata_free))
     {