A and B objects are not single instance objects.

I have several A objects working with several B objects.

Some of objects works fine. Some - experience this bug.

I'm sure that there is no conflict between different instances of these objects.


On 1/18/2019 10:13 AM, Alexander Dyagilev wrote:
Hello,

I have one object (A) in one thread sometimes connecting to another object (B) in another thread.

Object A connects its slots to B's signals. Once a slot is called, it disconnects it from the appropriate signal.

But, I have a problem now that sometimes the connection seems to disappear nowhere. Looks like a race condition bug, because it's not 100% reproducible and is not reproducible in the debug builds at all. Only in release.

I.e. slot is NOT called when the signal is emitted.

I've added logging to file. I've overridden QObject's connectNotify and disconnectNotify methods. In the log I see that the connectNotify is called for signal (and the appropriate disconnectNotify is never called). In the code where I emit signal I've added the additional check: QObject::isSignalConnected returns 0 for signal. Thus emit does not call the slot. But connectNotify was called and disconnectNotify was NOT. Which means the connection must exist!

Any help? What is going on?

Qt 5.11.3, Windows 10, Visual C++ 2015.

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to