2003-01-22 Havoc Pennington <hp@pobox.com>
authorHavoc Pennington <hp@redhat.com>
Wed, 22 Jan 2003 04:48:47 +0000 (04:48 +0000)
committerHavoc Pennington <hp@redhat.com>
Wed, 22 Jan 2003 04:48:47 +0000 (04:48 +0000)
* dbus/dbus-connection.c
(dbus_connection_send_message_with_reply_and_block): add some @todo

* bus/driver.c (bus_driver_add_connection): add a FIXME about memleak

ChangeLog
bus/driver.c
bus/driver.h
dbus/dbus-connection.c

index adbd7bb..c3b2a57 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-01-22  Havoc Pennington  <hp@pobox.com>
+
+       * dbus/dbus-connection.c
+       (dbus_connection_send_message_with_reply_and_block): add some @todo
+
+       * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
+
 2003-01-21  Havoc Pennington  <hp@pobox.com>
 
         (patch untested because can't compile)
index eda09af..41c98c9 100644 (file)
@@ -1,5 +1,5 @@
 /* -*- mode: C; c-file-style: "gnu" -*- */
-/* bus.c  Bus client (driver)
+/* driver.c  Bus client (driver)
  *
  * Copyright (C) 2003  CodeFactory AB
  *
@@ -225,6 +225,8 @@ bus_driver_add_connection (DBusConnection *connection)
       return FALSE;
     }
 
+  /* FIXME we are leaking the DBusMessageHandler */
+  
   _dbus_verbose ("D-Bus driver on board...\n");
   
   return TRUE;
index 3667aac..ea5638c 100644 (file)
@@ -1,5 +1,5 @@
 /* -*- mode: C; c-file-style: "gnu" -*- */
-/* bus.h  Bus client (driver)
+/* driver.h  Bus client (driver)
  *
  * Copyright (C) 2003  CodeFactory AB
  *
index 0cae760..e8ff5b6 100644 (file)
@@ -717,6 +717,19 @@ dbus_connection_send_message_with_reply (DBusConnection     *connection,
  * Sends a message and blocks a certain time period while waiting for a reply.
  * This function does not dispatch any message handlers until the main loop
  * has been reached. This function is used to do non-reentrant "method calls."
+ * If a reply is received, it is returned, and removed from the incoming
+ * message queue. If it is not received, #NULL is returned and the
+ * result is set to #DBUS_RESULT_NO_REPLY. If something else goes
+ * wrong, result is set to whatever is appropriate, such as
+ * #DBUS_RESULT_NO_MEMORY.
+ *
+ * @todo I believe if we get EINTR or otherwise interrupt the
+ * do_iteration call in here, we won't block the required length of
+ * time. I think there probably has to be a loop: "while (!timeout_elapsed)
+ * { check_for_reply_in_queue(); iterate_with_remaining_timeout(); }"
+ *
+ * @todo need to remove the reply from the message queue, or someone
+ * else might process it again later.
  *
  * @param connection the connection
  * @param message the message to send