From c414488fe62605ebda5e875fc2db05c6b3dd199f Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 22 Jan 2003 04:48:47 +0000 Subject: 2003-01-22 Havoc Pennington * 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 | 7 +++++++ bus/driver.c | 4 +++- bus/driver.h | 2 +- dbus/dbus-connection.c | 13 +++++++++++++ 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 + + * 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 (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 -- cgit