Go to file
Olivier Goffart 8d6d68d3d3 QReadWriteLocker: Fix race in unlock
An Acquire barrier in QReadWriteLocker::unlock was missing to synchronize
with the testAndSetOrdered on d_ptr in the lock functions.

The race is between the write of d->writerCount in tryLockForWrite,
and the read in unlock. The acquire on d->mutex is not enough because
it is not on the same object. While that race could be fixed by taking
the newly-allocate()ed d's mutex before publishing it with testAndSet,
there's another race, on 'recursive', between a newly-minted Private*
with recursive == false in tryLockForWrite(), and the read of 'recursive'
in unlock().

Task-number: QTBUG-58917
Change-Id: I10ba36573c0e57468d11e9b77d85045711feaea1
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2017-02-17 16:21:20 +00:00
bin don't include injected headers into linker version script 2016-10-14 09:00:29 +00:00
config.tests Fix MIPS DSP configuration 2017-01-27 15:08:57 +00:00
dist Add changes file for 5.8.0 2017-01-02 06:50:47 +00:00
doc Doc: Ignore QML/JavaScript parsing errors 2017-02-07 08:34:39 +00:00
examples Example: migrate flightinfo to QRegularExpression 2017-02-15 14:45:58 +00:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
mkspecs Replace gstrip by strip due to ELF corruption 2017-02-13 20:06:53 +00:00
qmake Doc: Remove mentioning of Windows CE from qmake documentation 2017-02-14 12:48:35 +00:00
src QReadWriteLocker: Fix race in unlock 2017-02-17 16:21:20 +00:00
tests Adapt to the C++ SIC introduced by P0012: noexcept overloading 2017-02-17 13:57:30 +00:00
util Also release winmain, qopenglextensions under commercial licenses 2016-11-18 16:19:56 +00:00
.gitattributes
.gitignore Update .gitignore 2017-01-18 10:58:02 +00:00
.qmake.conf Bump version 2017-01-03 13:25:46 +01:00
.tag
config_help.txt Remove the -no-rtti option from configure 2017-01-26 07:44:39 +00:00
configure complain about various invalid configuration attempts 2017-01-06 20:10:10 +00:00
configure.bat reduce nesting in configure.bat 2017-01-10 12:44:21 +00:00
configure.json Remove outdated check for Apple Clang 2.x and 3.x 2017-02-08 05:28:01 +00:00
configure.pri Remove outdated check for Apple Clang 2.x and 3.x 2017-02-08 05:28:01 +00:00
header.BSD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.BSD-OLD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.COMM Add header template for commercial only modules 2015-10-19 10:37:18 +00:00
header.FDL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.FDL-OLD Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.GPL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.GPL-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.LGPL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.LGPL3 Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL3-COMM Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL21 Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL-NOGPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
header.LGPL-ONLY Update copyright headers 2015-02-11 06:49:51 +00:00
INSTALL Doc: Update links in INSTALL file 2015-02-16 09:06:41 +00:00
LGPL_EXCEPTION.txt Update copyright headers 2015-02-11 06:49:51 +00:00
LICENSE.FDL
LICENSE.GPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPLv3 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.LGPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPLv3 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.LGPLv21 Expand license scope from "Qt GUI Toolkit" to "Qt Toolkit" 2016-06-15 07:02:32 +00:00
LICENSE.PREVIEW.COMMERCIAL Add new license header templates and license files 2016-01-14 20:43:46 +00:00
qtbase.pro nuke configure -host-option 2016-12-13 18:55:59 +00:00
sync.profile Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-16 12:35:36 +01:00