[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: Multithreaded QLocalSocket
From:       Thiago Macieira <thiago () kde ! org>
Date:       2008-06-30 14:17:40
Message-ID: 200806301117.41188.thiago () kde ! org
[Download RAW message or body]


Sebastian Trüg wrote:
>On Sunday 29 June 2008 14:19:21 Kevin Krammer wrote:
>> On Sunday 29 June 2008, Sebastian Trüg wrote:
>> > Apparently on Unix QLocalSocket uses QTcpSocket internally. This
>> > results in a big problem when I want to use it in a multithreaded
>> > environment as I cannot move the internal QTcpSocket to the new
>> > thread. Does anyone have an idea on how to solve this issue? On how
>> > to use QLocalSocket in multithreaded systems?
>>
>> On the server or the client side?
>>
>> On the client side you could use one QLocalSocket per thread.
>>
>> On the server side you can use the incomingConnection(quintptr)
>> template method of QLocalServer and create the actual QLocalSocket in
>> the target thread's context. We do this in Akonadi, see
>> kdesupport/akonadi/server/src/akonadi.cpp and
>> kdesupport/akonadi/server/src/akonadiconnection.cpp
>
>Thanks a lot for the hints. Seems to work. :)

You should also be able to use the nextPendingConnection() method of 
QLocalServer and push it to the thread that will do the work with 
moveToThread().

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

["signature.asc" (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic