summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-01-22 04:48:47 +0000
committerHavoc Pennington <hp@redhat.com>2003-01-22 04:48:47 +0000
commitc414488fe62605ebda5e875fc2db05c6b3dd199f (patch)
treedb0ba840e73b30d3b804216c5c3fc333d2dee821
parentd6d50a29945ded04a17b3f42a3a1074449250ec0 (diff)
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
-rw-r--r--ChangeLog7
-rw-r--r--bus/driver.c4
-rw-r--r--bus/driver.h2
-rw-r--r--dbus/dbus-connection.c13
4 files changed, 24 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index adbd7bba..c3b2a573 100644
--- 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)
diff --git a/bus/driver.c b/bus/driver.c
index eda09af4..41c98c96 100644
--- a/bus/driver.c
+++ b/bus/driver.c
@@ -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;
diff --git a/bus/driver.h b/bus/driver.h
index 3667aac8..ea5638c3 100644
--- a/bus/driver.h
+++ b/bus/driver.h
@@ -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
*
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
index 0cae7601..e8ff5b6a 100644
--- a/dbus/dbus-connection.c
+++ b/dbus/dbus-connection.c
@@ -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