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

List:       kde-devel
Subject:    Re: KDE, Qt3 and Amarok
From:       Thiago Macieira <thiago () kde ! org>
Date:       2008-04-19 15:29:40
Message-ID: 200804191230.01315.thiago () kde ! org
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


Bart Van Assche wrote:
>Hello,
>
>While analyzing KDE applications with a thread checker I noticed that
>there is a serious problem in Qt3: the implementation of the class
>QShared in Qt3 is not threadsafe. This can cause spurious and hard to
>find crashes in KDE applications like Amarok that share Qt-objects
>over threads. I have contacted Trolltech about this, and Trolltech
>told me that Qt3 has reached end-of-life and that they won't fix this.
>Trolltech also told me that the KDE project keeps a collection of
>patches for Qt3. This leads to the following questions:

>* How important is Qt3 for the KDE project ? Is there still a
>significant number of people using Qt3, or will everyone switch to Qt4
>shortly ?

There can't be a wholesale switch in a short time frame. There are very 
many installations still out there that will need at least two years to 
switch, maybe even more.

But KDE developers are now focussing on the KDE 4 applications, which are 
based on Qt 4. In that version, the shared classes are thread-safe (they 
were designed from the ground up to be so).

>* If it is considered relevant to fix this kind of issue, where can I
>find the collection of Qt3 patches and how can I submit Qt3 patches ?

The collection of patches can be found in branches/qt/3.3/qt-copy/patches/ 
on our Subversion server. The link to websvn is:
	branches/qt/3.3/qt-copy/patches/

But amarok solved the problem in a different fashion: they make all 
threads of theirs specific to a single processor. That avoids those race 
conditions, up to a certain extent.

But I have to tell you: this is a bug in Amarok, not in Qt. They should be 
making deep copies of all objects that will be used in a different 
thread.

-- 
  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)]

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


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

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