Go to file
Shane Kearns a590e77fd8 Fix QNetworkConfigurationManager usage outside main thread first
QNetworkConfigurationManager creates the engines loaded from plugins
as objects in the main thread.
If a QNetworkConfigurationManager instance is created in a worker thread
without any instance previously existing in the main thread, then it
is uninitialised until the main thread has run.
This causes allConfigurations() to return an empty list if called
immediately after instantiation, for example.

This fix initialises the plugins using blocking queued connections,
which causes the worker thread to block until the initialisation function
has been called in the context of the main thread.
Deadlock is possible if the main thread is for some reason waiting on the
worker thread, but it will not deadlock on QNetworkConfigurationManager's
mutex.
If this is a problem for an application, it should use
QNetworkConfigurationManager from the main thread first to preload the
plugins.

Task-number: QTBUG-18795
Task-number: QTBUG-18799
Reviewed-by: Cristiano Di Flora
2011-05-09 13:50:02 +02:00
bin Move private headers into versioned subdirectory 2011-05-02 15:30:08 +02:00
config.profiles Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
config.tests Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
demos Move private headers into versioned subdirectory 2011-05-02 15:30:08 +02:00
dist Changelog: Qt Designer 4.8 2011-05-05 16:17:50 +02:00
doc/src Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
examples Removed examples and demos that are no longer in qtbase. 2011-04-27 12:06:02 +02:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Fix framework absolute path issue 2011-05-04 15:55:51 +02:00
qmake qmake nmake generator: pass MAKEFLAGS to sub-make calls 2011-05-03 13:31:12 +02:00
src Fix QNetworkConfigurationManager usage outside main thread first 2011-05-09 13:50:02 +02:00
tests Fix QNetworkConfigurationManager usage outside main thread first 2011-05-09 13:50:02 +02:00
tools BC cleanup in uitools. 2011-05-04 16:23:51 +02:00
util Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Add .gitignore to each module 2011-04-27 12:06:07 +02:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure Merge branch 'master' of scm.dev.nokia.troll.no:qt/qtbase-staging 2011-05-04 10:08:23 +02:00
configure.exe new configure.exe binary 2011-05-03 14:49:38 +02:00
header.BSD Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
header.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
header.LGPL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02: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 Install syncqt, and ensure it runs fine for external modules 2011-05-02 15:30:08 +02:00
sync.profile Added dependency information to the sync.profile. 2011-04-27 12:34:11 +02:00