qt5base-lts/src
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
..
3rdparty Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
corelib Add Q_UNIMPLEMENTED() macro 2011-05-04 18:15:53 +02:00
dbus Move private headers into versioned subdirectory 2011-05-02 15:30:08 +02:00
gui Only enable design metrics for scalable fonts 2011-05-05 13:39:11 +02:00
modules Move private headers into versioned subdirectory 2011-05-02 15:30:08 +02:00
network Fix QNetworkConfigurationManager usage outside main thread first 2011-05-09 13:50:02 +02:00
opengl Merge branch 'master' of scm.dev.nokia.troll.no:qt/qtbase-staging 2011-05-04 10:08:23 +02:00
openvg compile openvg with private headers 2011-05-05 08:58:59 -05:00
plugins Dont do doneCurrent in swapBuffers 2011-05-05 18:11:57 +02:00
s60installs Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
s60main Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
sql Move private headers into versioned subdirectory 2011-05-02 15:30:08 +02:00
testlib Add module.prf, and install MODULE_PRI for each module 2011-05-02 15:30:08 +02:00
tools uic: Remove Q3Support. 2011-05-06 09:32:09 +02:00
uitools BC cleanup in uitools. 2011-05-04 16:23:51 +02:00
winmain Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
xml Move private headers into versioned subdirectory 2011-05-02 15:30:08 +02:00
qbase.pri Move private headers into versioned subdirectory 2011-05-02 15:30:08 +02:00
qt_install.pri Move private headers into versioned subdirectory 2011-05-02 15:30:08 +02:00
qt_targets.pri Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
src.pro Move uitools from QtTools to QtBase 2011-04-27 12:05:52 +02:00