qt5base-lts/tests/auto/dbus/qdbusabstractinterface
Thiago Macieira 0d75f8e95a tst_QDBusAbstractInterface: fix racy test failing every so often
The explanation is in the code comment. Ever since QDBusConnections
began being processed in a separate thread, we were relying on the fact
that the main thread didn't begin processing its event queue until the
second event got posted (the event loop only exits after it has finished
processing all pending events). We had a race between the main thread
starting its processing, at which point it decides which is the last
event it will process, and the QDBusConnectionManager thread posting the
second event.

This is very fragile code, since it depends on the behavior of
QDBusConnectionPrivate (how it stores the signal relays in a hash) and
that of QHash with duplicate keys. This only works because the hash
key between the two connections is the same (it's only dependent on the
method name and interface name). If we ever begin using something that
isn't the same between "control" and "p", then with QHash's randomness,
we'll be racy again.

Change-Id: I42e7ef1a481840699a8dffff1406c3a4674ec3a6
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-09-24 07:37:05 +00:00
..
qdbusabstractinterface Autotest: rename sub tests from "test" to something meaningful 2015-07-18 02:22:40 +00:00
qpinger Update copyright headers 2015-02-11 06:49:51 +00:00
interface.cpp Update copyright headers 2015-02-11 06:49:51 +00:00
interface.h Update copyright headers 2015-02-11 06:49:51 +00:00
org.qtproject.QtDBus.Pinger.xml Let qdbusxml2cpp generate code that compiles: no '-' in variable names. 2013-07-01 17:04:26 +02:00
qdbusabstractinterface.pro Autotest: rename sub tests from "test" to something meaningful 2015-07-18 02:22:40 +00:00
tst_qdbusabstractinterface.cpp tst_QDBusAbstractInterface: fix racy test failing every so often 2015-09-24 07:37:05 +00:00