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

List:       kde-pim
Subject:    Re: [Kde-pim] FYI: Akonadi fails to compile on < Qt 5.3
From:       Daniel =?ISO-8859-1?Q?Vr=E1til?= <dvratil () redhat ! com>
Date:       2014-12-15 11:28:56
Message-ID: 6223815.eN69ODQknb () mjollnir
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


On Sunday, December 14, 2014 12:42:36 PM Milian Wolff wrote:
> On Sunday 14 December 2014 12:29:25 Kevin Funk wrote:
> > Heya,
> > 
> > Just got this from a user in #kde-devel: https://paste.kde.org/pxvugaji8
> > 
> > Note sure what the intended minimum required Qt version is here, but
> > either
> > way this needs to be fixed in the root CMakeLists.txt then.
> > 
> > Caused by:
> > 
> > commit 8a113985cda1693c8158916065bd54e57d028cda
> > Author: Milian Wolff <mail@milianw.de>
> > Date:   Mon Dec 1 11:39:33 2014 +0100
> > 
> > Use an QAtomicInt instead of a plain bool for Entity::cacheEnabled.
> > 
> > A plain bool is not thread safe and leads to undefined behavior.
> > So better be safe than sorry and use a thread safe QAtomicInt.
> > 
> > ^ Needs http://doc.qt.io/qt-5/qatomicinteger.html#operator-int (since 5.3)
> 
> Note: I worked on this patch in Qt 4 Akonadi. I was not aware that this
> breaks anything in Qt 5 master, which one could argue is due to a
> source-incompatible change then?

Sorry, I should have caught it during the review. I've run into this myself a 
couple times, but I always forget about what pain QAtomicInt is...

> Anyhow, would be easy to fix, just add a .load().

Not that simple: we support Qt 5 build on 1.13 branch too, so we need to fix 
it there in cross-Qt compatible way. Qt 4 QAtomicInt does not have .load() 
however, so this won't work. I guess we probably need to subclass QAtomicInt 
and implement the overload ourselves by either providing operator int() when 
Qt >= 5.0 && Qt < 5.3, or provide .load() when Qt <  5.0.

On master we can just use .load() and .store() everywhere.

Dan

> 
> Bye

-- 
Daniel Vrátil | dvratil@redhat.com | dvratil on #kde-devel, #kontact, #akonadi
Associate Software Engineer
KDE Desktop Team, Red Hat

GPG Key: 0xC59D614F6F4AE348                                                           \
                
Fingerprint: 4EC1 86E3 C54E 0B39 5FDD B5FB C59D 614F 6F4A E348     


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

_______________________________________________
KDE PIM mailing list kde-pim@kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/

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

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