diff options
author | Manish Narang <Manish.Narang@kpit.com> | 2018-01-25 11:39:44 +0000 |
---|---|---|
committer | Simon McVittie <smcv@collabora.com> | 2018-02-06 19:14:27 +0000 |
commit | 1572ca928b466031c9822c1083b7bc6ce63b27c6 (patch) | |
tree | 713bc1c28f85af4fb78efb1947621a92c54e4885 | |
parent | 47ab11cb42152563017e4a5ca47cc21963781e75 (diff) | |
download | dbus-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.c | 2 |
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); |