summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManish Narang <Manish.Narang@kpit.com>2018-01-25 11:39:44 +0000
committerSimon McVittie <smcv@collabora.com>2018-02-06 19:14:27 +0000
commit1572ca928b466031c9822c1083b7bc6ce63b27c6 (patch)
tree713bc1c28f85af4fb78efb1947621a92c54e4885
parent47ab11cb42152563017e4a5ca47cc21963781e75 (diff)
downloaddbus-1572ca928b466031c9822c1083b7bc6ce63b27c6.tar.gz
DBusConnection: Pass a pending call around more often
If a pending call is provided, _dbus_connection_do_iteration_unlocked checks whether it has completed or has a reply ready as soon as it acquires the I/O path. If that's the case, then the iteration terminates without trying to carry out I/O, so that the pending call can be dispatched immediately, without blocking until a timeout is reached. This change is believed to be necessary, but not sufficient, to resolve #102839. Based on part of a patch from Michael Searle on <https://bugs.freedesktop.org/show_bug.cgi?id=102839>. Commit message added by Simon McVittie. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=102839 Reviewed-by: Simon McVittie <smcv@collabora.com> (cherry picked from commit 30f8a38b3c8f8756744d6b65dd8207302a683acc)
-rw-r--r--dbus/dbus-connection.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
index 1079e35e..2b0a5507 100644
--- a/dbus/dbus-connection.c
+++ b/dbus/dbus-connection.c
@@ -2527,7 +2527,7 @@ _dbus_connection_block_pending_call (DBusPendingCall *pending)
{
/* block again, we don't have the reply buffered yet. */
_dbus_connection_do_iteration_unlocked (connection,
- NULL,
+ pending,
DBUS_ITERATION_DO_READING |
DBUS_ITERATION_BLOCK,
timeout_milliseconds - elapsed_milliseconds);