On Feb 24, 2007, at 10:28, Phil Thompson wrote:

In the meantime you could try changing PyQt's configure.py (in
set_sip_flags()) so that it invokes sip with the -g flag.


I did some more tests and noticed something weird I do not quite understand. I once again took my trusty test script and created two different versions.

Version 1 (old version):

self.connect(self, QtCore.SIGNAL("steip(const QString &)"), self.container.write)

Is called in the threads run()-method.
Same old behaviour, after adding some more threads the program hangs and later dies.

If I try to use a QueuedConnection nothing gets printed at all. Has this something to to with the per thread eventloop,
I do not understand this behaviour at all.

Version 2:

self.connect(s, QtCore.SIGNAL("steip(const QString &)"), self.write,QtCore.Qt.QueuedConnection)

Is called in the main thread after creating the thread (s).
In this case the QueuedConnection works and I see that my textEdit field gets filled. Furthermore I can create a lot more threads (over 100), can kill and recreate them without any problems at all. When creating a new thread, the connect call is made in the main thread too.

So my question is, why does it matter where the connect call is made?

I tried this several times with yesterdays snapshot and everything seemed to work ok.

Kind regards,
Michael

_______________________________________________
PyKDE mailing list    PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to