Go to file
Thiago Macieira 028a860ac5 Fix the QNetworkConnectionManagerPrivate initialisation code.
The current code was meant to be a thread-safe initialisation that
also ran a couple of extra steps. But it wasn't. While it's ok to call
qAddPostRoutine(), the call to updateConfigurations() was
thread-unsafe. It is possible that another thread got the pointer to
the Private before updateConfigurations() finished.

So instead protect the initialisation with a mutex.

It's possible that the value of the pointer becomes visible to
other processors before the other contained values, so use
atomics here.

To call qAddPostRoutine safely from the main thread, use the trick
of deleteLater() (which is thread-safe) in another thread connecting
to a slot.

Change-Id: If9bab88138755df95a791f34b0be8684207979d7
Reviewed-on: http://codereview.qt-project.org/5028
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-10-06 22:45:14 +02:00
bin Merge branch 'refactor' 2011-09-13 08:54:45 +02:00
config.profiles Update licenseheader text in source files for qtbase Qt module 2011-05-24 12:34:08 +03:00
config.tests Fix warning caused by putting .mm files in SOURCES 2011-09-26 16:05:36 +02:00
dist Rename Qt::escape to QString::toHtmlEscaped, add compat method 2011-09-29 15:22:07 +02:00
doc/src Rename Qt::escape to QString::toHtmlEscaped, add compat method 2011-09-29 15:22:07 +02:00
examples Get rid of the last traces of QMimeSource 2011-09-29 08:54:06 +02:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Remove stale QtDeclarative dependency on QtOpenGL 2011-09-20 19:18:19 +02:00
qmake Merge branch 'refactor' 2011-09-13 08:54:45 +02:00
src Fix the QNetworkConnectionManagerPrivate initialisation code. 2011-10-06 22:45:14 +02:00
tests fix QChar::isSpace() to handle codepoint U+0085 2011-10-06 19:24:26 +02:00
tools Windows/configure.exe: Build V8 by default. 2011-10-04 15:19:22 +02:00
util Move the documentation for the classes to their modules. 2011-10-03 09:56:09 +02:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Update .gitignore 2011-10-03 05:58:44 +02:00
.gitmodules Add QtV8 library to QtBase 2011-08-29 10:16:01 +02:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure Logic does not match error message. 2011-10-06 07:35:40 +02:00
configure.exe New configure.exe binary 2011-09-05 08:55:31 +02:00
header.BSD Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
header.FDL Update licenseheader text in source files for qtbase Qt module 2011-05-24 12:34:08 +03:00
header.LGPL Update licenseheader text in source files for qtbase Qt module 2011-05-24 12:34:08 +03:00
header.LGPL-ONLY Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02: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 Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.PREVIEW.COMMERCIAL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
qtbase.pro Fix make confclean 2011-09-12 16:03:47 +02:00
sync.profile Remove uilib and QtUiTools from QtBase 2011-09-13 20:11:40 +02:00