Go to file
Thiago Macieira 7c0153faf7 Add a set of atomics based on C++11's std::atomic
The C++11 std::atomic type is very close to our API, to the point one
has to wonder if the committe was inspired by it. It provides all of
the memory semantics that Qt requires and more, plus some
compare-and-swap operations that we don't use.

The idea of returning the actual value in the event of a failed
compare-and-swap is actually quite good, as often we'll retry with
it. We just couldn't come up with a good name (fetchAndTestAndSet?).

The C++11 atomics require that the compiler support constexpr as well,
since std::atomic itself isn't required by the standard to be
trivially-constructible (in fact, it has a constexpr constructor in
the standard). For that reason, we need constexpr so we can add a
constructor to QBasicAtomic too.

Change-Id: I12c51455ba73350a6f7501aacc2ca7681c4369dd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-01-28 16:54:17 +01:00
bin Put the generated <module>version.h into build tree 2012-01-28 14:44:48 +01:00
config.tests QRegularExpression: configure support for PCRE 2012-01-26 23:10:52 +01:00
dist Make coordinates float based where it makes sense. 2012-01-25 02:23:25 +01:00
doc/src Remove support for the MNG file format and the bundled libmng 2012-01-25 02:22:18 +01:00
examples Remove use of QT_MODULE from library 2012-01-25 10:19:44 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs update readme to current reality 2012-01-27 13:55:27 +01:00
qmake "cache" is used only locally, so move it into scope 2012-01-27 10:54:48 +01:00
src Add a set of atomics based on C++11's std::atomic 2012-01-28 16:54:17 +01:00
tests QUrl: deprecate setEncodedUrl() and fromEncoded(), add url(). 2012-01-28 13:08:50 +01:00
tools Add concurrent to QT_CONFIG also on Windows 2012-01-27 13:56:27 +01:00
util Remove Symbian / S60 code from util. 2012-01-24 01:09:22 +01:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Remove references to openvgversion.h 2012-01-14 14:48:16 +01:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure QRegularExpression: configure support for PCRE 2012-01-26 23:10:52 +01:00
configure.exe Add a new QT_NO_SSL feature macro. 2012-01-06 11:19:23 +01:00
header.BSD Update contact information in license headers. 2012-01-23 04:04:33 +01:00
header.FDL Update contact information in license headers. 2012-01-23 04:04:33 +01:00
header.LGPL Update contact information in license headers. 2012-01-23 04:04:33 +01:00
header.LGPL-ONLY Update obsolete contact address. 2012-01-23 04:04:33 +01:00
INSTALL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LGPL_EXCEPTION.txt Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.LGPL Update contact information in license headers. 2012-01-23 04:04:33 +01:00
LICENSE.PREVIEW.COMMERCIAL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
qtbase.pro Remove support for the MNG file format and the bundled libmng 2012-01-25 02:22:18 +01:00
sync.profile Remove references to openvgversion.h 2012-01-14 14:48:16 +01:00