Add a stress-test for GDBusProxy in threads with no default main context

Destroying a GDBusProxy in a thread used to race with NameOwnerChanged
being delivered to the main context's thread (GNOME #651133).

Also, g_dbus_proxy_call_sync in a thread would race with NameOwnerChanged
being delivered to the main context's thread and rewriting the name_owner
(GNOME #656039).

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=656039
Bug-NB: NB#259760
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Signed-off-by: David Zeuthen <davidz@redhat.com>
This commit is contained in:
Simon McVittie
2011-08-15 16:00:51 +01:00
committed by David Zeuthen
parent 85214d1e7f
commit 67cf3ea368
3 changed files with 259 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ INCLUDES = \
$(GLIB_DEBUG_FLAGS) \
-I$(top_builddir)/gio \
-I$(top_srcdir)/gio \
$(DBUS1_CFLAGS) \
-DSRCDIR=\""$(srcdir)"\"
noinst_PROGRAMS = $(TEST_PROGS) $(SAMPLE_PROGS)
@@ -59,6 +60,7 @@ TEST_PROGS += \
gdbus-connection-slow \
gdbus-names \
gdbus-proxy \
gdbus-proxy-threads \
gdbus-proxy-well-known-name \
gdbus-introspection \
gdbus-threading \
@@ -296,6 +298,9 @@ gdbus_names_LDADD = $(progs_ldadd)
gdbus_proxy_SOURCES = gdbus-proxy.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c
gdbus_proxy_LDADD = $(progs_ldadd)
gdbus_proxy_threads_SOURCES = gdbus-proxy-threads.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c
gdbus_proxy_threads_LDADD = $(progs_ldadd)
gdbus_proxy_well_known_name_SOURCES = gdbus-proxy-well-known-name.c gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c
gdbus_proxy_well_known_name_LDADD = $(progs_ldadd)