[Qgis-developer] Socket server freezes on Python plugin

G. Allegri giohappy at gmail.com
Tue Jun 19 05:30:43 PDT 2012


No problems with your basic example with pure python threading. The problem
is the interaction with the Qt event loop. That's why PyQt threading is
there ;)

giovanni

Inviato da dispositivo mobile
Il giorno 19/giu/2012 12.50, "Víctor González" <victorzinho at gmail.com> ha
scritto:
>
> Hi again,
>
> I tried Bernhard's solution and it worked like charm. After digging a
little more into PyQt I found this thread [1] with some answers. Seems like
QtNetworking deals with all this networking and threading issues
internally, so my problem is solved that way.
>
> Regarding Giovanni's comments, I confirm that behavior but I'm not
familiar with multithreading and networking in Python, so I cannot imagine
what could be the difference between using QtNetworking vs.
threading/socket and if that is the expected behavior or not.
>
> Thanks for the help,
> Víctor.
>
> [1]
http://python.6.n6.nabble.com/Threads-with-PyQt-Qt-s-or-Python-s-td1919800.html#a1919801
>
> 2012/6/19 G. Allegri <giohappy at gmail.com>
>
>>> The plugin server unfreezes even if you simply move the mouse over QGis
(wihtout doing any action on it).
>>
>>
>> This happens only if you move the mouse over the Canvas, while the
server remains freezed while moving on other areas (TOC, toolbar, etc.)
>>
>>>
>>> It must be investigated...
>>>
>>> giovanni
>>>
>>> 2012/6/19 Víctor González <victorzinho at gmail.com>
>>>>
>>>> Hi,
>>>>
>>>> I'm trying to create a plugin that opens a socket server in a separate
thread and handles requests. I create the server using
SocketServer.TCPServer and threading.Thread in the initGui method and the
plugin starts correctly, but if I try to get a response from a client, the
server freezes and does not respond.
>>>>
>>>> The strange thing is that I have added a toolbar button that opens and
closes a file and, if I click that button, the server unfreezes and I get
the response as expected. However, if I create the socket server with the
same exact code as an standalone program, it works as expected without
freezing.
>>>>
>>>> I have looked into the PyQgis cookbook [1] and the contributed plugins
[2] searching for an example or solution but I couldn't find anything. Does
anyone know what may be wrong? Any hint will be greatly appreciated. I
attach the Qgis plugin as well as the standalone server and client.
>>>>
>>>> Thanks in advance,
>>>> Víctor.
>>>>
>>>> _______________________________________________
>>>> Qgis-developer mailing list
>>>> Qgis-developer at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20120619/afeeb07c/attachment.html>


More information about the Qgis-developer mailing list