diff options
author | Mike Gorse <mgorse@novell.com> | 2010-10-22 04:33:53 -0400 |
---|---|---|
committer | Will Thompson <will.thompson@collabora.co.uk> | 2010-11-08 00:08:58 -0500 |
commit | 22df79e0c1373b696adbbaf2791195f0a8b5fb0f (patch) | |
tree | 7d16937ad51fc6566f460b42faa7658b75448735 /.gitignore | |
parent | 8f0936de52b62b025385182406e5ea5795503d76 (diff) |
Fix switching a connection's GMainContext
dbus_connection_setup_with_g_main and dbus_server_setup_with_g_main are
intended to switch the setup to a new main loop context if they are
called with a context other than the one with which they were initially
called. However, this does not work in practice. The problem has to do
with libdbus maintaining a list of watches associated with the
connection. When dbus_connection_set_watch_functions is called, it
first adds the existing watches using the new function and data, then
removes the watches using the old function and data. Remove_watch calls
connection_setup_remove_watch, and the latter does not check that the
watch's connection setup matches the connection setup passed to it, so
it winds up removing the watch from the new connection setup. (The
watch has already been removed from the old setup at this point, as a
side effect of dbus_watch_set_data).
Fixes: <https://bugs.freedesktop.org/show_bug.cgi?id=30574>
Signed-off-by: Will Thompson <will.thompson@collabora.co.uk>
Diffstat (limited to '.gitignore')
-rw-r--r-- | .gitignore | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -94,6 +94,7 @@ test/Makefile.in test/core/Makefile test/core/Makefile.in /test/core/test-5688 +/test/core/test-30574 test/core/my-object-marshal.c test/core/my-object-marshal.h test/core/run-with-tmp-session-bus.conf |