diff options
author | Fabien Freling <fabien.freling@nokia.com> | 2011-03-15 14:09:06 (GMT) |
---|---|---|
committer | Fabien Freling <fabien.freling@nokia.com> | 2011-03-15 14:09:06 (GMT) |
commit | b36f947147e3f5acf444c94d6e2a608506b7e753 (patch) | |
tree | a0bf253b8e315305cfada01871f3a1cbf54aef43 /src/network/bearer/qnetworkconfigmanager.cpp | |
parent | d524e983c60ba59f3c65d811ec92f02c97d1a8ab (diff) | |
parent | c0cd8db0498daaa8151d1f80143b6849016bdc7c (diff) | |
download | Qt-b36f947147e3f5acf444c94d6e2a608506b7e753.zip Qt-b36f947147e3f5acf444c94d6e2a608506b7e753.tar.gz Qt-b36f947147e3f5acf444c94d6e2a608506b7e753.tar.bz2 |
Merge remote branch 'mainline/master' into merge_raster
Diffstat (limited to 'src/network/bearer/qnetworkconfigmanager.cpp')
-rw-r--r-- | src/network/bearer/qnetworkconfigmanager.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/network/bearer/qnetworkconfigmanager.cpp b/src/network/bearer/qnetworkconfigmanager.cpp index 9927f29..9e1eaea 100644 --- a/src/network/bearer/qnetworkconfigmanager.cpp +++ b/src/network/bearer/qnetworkconfigmanager.cpp @@ -52,21 +52,23 @@ QT_BEGIN_NAMESPACE #define Q_GLOBAL_STATIC_QAPP_DESTRUCTION(TYPE, NAME) \ - Q_GLOBAL_STATIC_INIT(TYPE, NAME); \ + static QGlobalStatic<TYPE > this_##NAME \ + = { Q_BASIC_ATOMIC_INITIALIZER(0), false }; \ static void NAME##_cleanup() \ { \ delete this_##NAME.pointer; \ this_##NAME.pointer = 0; \ - this_##NAME.destroyed = true; \ } \ static TYPE *NAME() \ { \ - if (!this_##NAME.pointer && !this_##NAME.destroyed) { \ + if (!this_##NAME.pointer) { \ TYPE *x = new TYPE; \ if (!this_##NAME.pointer.testAndSetOrdered(0, x)) \ delete x; \ - else \ + else { \ qAddPostRoutine(NAME##_cleanup); \ + this_##NAME.pointer->updateConfigurations(); \ + } \ } \ return this_##NAME.pointer; \ } @@ -75,15 +77,7 @@ Q_GLOBAL_STATIC_QAPP_DESTRUCTION(QNetworkConfigurationManagerPrivate, connManage QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate() { - static bool initialized = false; - - QNetworkConfigurationManagerPrivate *m = connManager(); - if (!initialized) { - initialized = true; - m->updateConfigurations(); - } - - return m; + return connManager(); } /*! |