+++ /dev/null
-From 03cc20707a3e7b2d8629e84d7a766f41edb8b444 Mon Sep 17 00:00:00 2001
-From: James Westby <jw+debian@jameswestby.net>
-Date: Thu, 01 Oct 2009 14:09:54 +0000
-Subject: Correct timeout handling
-
-The timeout handling code subtracts the elapsed time from the timeout
-each time a message is received, which drastically reduces the timeout
-in circumstances such as service activation.
-
-Correct so that the timeout is never modified, and the elapsed time
-instead subtracted where necessary.
-
-Signed-off-by: James Westby <jw+debian@jameswestby.net>
-Signed-off-by: Scott James Remnant <scott@ubuntu.com>
----
-diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
-index a59b1a0..31edd61 100644
---- a/dbus/dbus-connection.c
-+++ b/dbus/dbus-connection.c
-@@ -2392,7 +2392,7 @@ _dbus_connection_block_pending_call (DBusPendingCall *pending)
- */
- _dbus_verbose ("dbus_connection_send_with_reply_and_block() waiting for more memory\n");
-
-- _dbus_memory_pause_based_on_timeout (timeout_milliseconds);
-+ _dbus_memory_pause_based_on_timeout (timeout_milliseconds - elapsed_milliseconds);
- }
- else
- {
-@@ -2400,7 +2400,7 @@ _dbus_connection_block_pending_call (DBusPendingCall *pending)
- _dbus_connection_do_iteration_unlocked (connection,
- DBUS_ITERATION_DO_READING |
- DBUS_ITERATION_BLOCK,
-- timeout_milliseconds);
-+ timeout_milliseconds - elapsed_milliseconds);
- }
-
- goto recheck_status;
-@@ -2409,9 +2409,7 @@ _dbus_connection_block_pending_call (DBusPendingCall *pending)
- _dbus_verbose ("dbus_connection_send_with_reply_and_block(): clock set backward\n");
- else if (elapsed_milliseconds < timeout_milliseconds)
- {
-- timeout_milliseconds -= elapsed_milliseconds;
-- _dbus_verbose ("dbus_connection_send_with_reply_and_block(): %d milliseconds remain\n", timeout_milliseconds);
-- _dbus_assert (timeout_milliseconds >= 0);
-+ _dbus_verbose ("dbus_connection_send_with_reply_and_block(): %d milliseconds remain\n", timeout_milliseconds - elapsed_milliseconds);
-
- if (status == DBUS_DISPATCH_NEED_MEMORY)
- {
-@@ -2421,7 +2419,7 @@ _dbus_connection_block_pending_call (DBusPendingCall *pending)
- */
- _dbus_verbose ("dbus_connection_send_with_reply_and_block() waiting for more memory\n");
-
-- _dbus_memory_pause_based_on_timeout (timeout_milliseconds);
-+ _dbus_memory_pause_based_on_timeout (timeout_milliseconds - elapsed_milliseconds);
- }
- else
- {
-@@ -2429,14 +2427,14 @@ _dbus_connection_block_pending_call (DBusPendingCall *pending)
- _dbus_connection_do_iteration_unlocked (connection,
- DBUS_ITERATION_DO_READING |
- DBUS_ITERATION_BLOCK,
-- timeout_milliseconds);
-+ timeout_milliseconds - elapsed_milliseconds);
- }
-
- goto recheck_status;
- }
-
- _dbus_verbose ("dbus_connection_send_with_reply_and_block(): Waited %ld milliseconds and got no reply\n",
-- (tv_sec - start_tv_sec) * 1000 + (tv_usec - start_tv_usec) / 1000);
-+ elapsed_milliseconds);
-
- _dbus_assert (!_dbus_pending_call_get_completed_unlocked (pending));
-
---
-cgit v0.8.2