Bearer: replace the use of QMutexPool in the Windows plugin
Use a simple Q_GLOBAL_STATIC Change-Id: Ifea6e497f11a461db432ffff1449b14b63628c12 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>bb10
parent
e9d1d659a3
commit
29ac941c1e
|
|
@ -35,7 +35,6 @@
|
|||
#include "platformdefs.h"
|
||||
|
||||
#include <QtCore/qmutex.h>
|
||||
#include <QtCore/private/qmutexpool_p.h>
|
||||
#include <QtCore/qlibrary.h>
|
||||
|
||||
#include <QtNetwork/private/qbearerplugin_p.h>
|
||||
|
|
@ -46,42 +45,32 @@
|
|||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
static void resolveLibrary()
|
||||
static bool resolveLibraryInternal()
|
||||
{
|
||||
static QBasicAtomicInt triedResolve = Q_BASIC_ATOMIC_INITIALIZER(false);
|
||||
|
||||
if (!triedResolve.loadAcquire()) {
|
||||
#ifndef QT_NO_THREAD
|
||||
QMutexLocker locker(QMutexPool::globalInstanceGet(&local_WlanOpenHandle));
|
||||
#endif
|
||||
|
||||
if (!triedResolve.load()) {
|
||||
QLibrary wlanapiLib(QLatin1String("wlanapi"));
|
||||
local_WlanOpenHandle = (WlanOpenHandleProto)
|
||||
wlanapiLib.resolve("WlanOpenHandle");
|
||||
local_WlanRegisterNotification = (WlanRegisterNotificationProto)
|
||||
wlanapiLib.resolve("WlanRegisterNotification");
|
||||
local_WlanEnumInterfaces = (WlanEnumInterfacesProto)
|
||||
wlanapiLib.resolve("WlanEnumInterfaces");
|
||||
local_WlanGetAvailableNetworkList = (WlanGetAvailableNetworkListProto)
|
||||
wlanapiLib.resolve("WlanGetAvailableNetworkList");
|
||||
local_WlanQueryInterface = (WlanQueryInterfaceProto)
|
||||
wlanapiLib.resolve("WlanQueryInterface");
|
||||
local_WlanConnect = (WlanConnectProto)
|
||||
wlanapiLib.resolve("WlanConnect");
|
||||
local_WlanDisconnect = (WlanDisconnectProto)
|
||||
wlanapiLib.resolve("WlanDisconnect");
|
||||
local_WlanScan = (WlanScanProto)
|
||||
wlanapiLib.resolve("WlanScan");
|
||||
local_WlanFreeMemory = (WlanFreeMemoryProto)
|
||||
wlanapiLib.resolve("WlanFreeMemory");
|
||||
local_WlanCloseHandle = (WlanCloseHandleProto)
|
||||
wlanapiLib.resolve("WlanCloseHandle");
|
||||
|
||||
triedResolve.storeRelease(true);
|
||||
}
|
||||
}
|
||||
QLibrary wlanapiLib(QLatin1String("wlanapi"));
|
||||
local_WlanOpenHandle = (WlanOpenHandleProto)
|
||||
wlanapiLib.resolve("WlanOpenHandle");
|
||||
local_WlanRegisterNotification = (WlanRegisterNotificationProto)
|
||||
wlanapiLib.resolve("WlanRegisterNotification");
|
||||
local_WlanEnumInterfaces = (WlanEnumInterfacesProto)
|
||||
wlanapiLib.resolve("WlanEnumInterfaces");
|
||||
local_WlanGetAvailableNetworkList = (WlanGetAvailableNetworkListProto)
|
||||
wlanapiLib.resolve("WlanGetAvailableNetworkList");
|
||||
local_WlanQueryInterface = (WlanQueryInterfaceProto)
|
||||
wlanapiLib.resolve("WlanQueryInterface");
|
||||
local_WlanConnect = (WlanConnectProto)
|
||||
wlanapiLib.resolve("WlanConnect");
|
||||
local_WlanDisconnect = (WlanDisconnectProto)
|
||||
wlanapiLib.resolve("WlanDisconnect");
|
||||
local_WlanScan = (WlanScanProto)
|
||||
wlanapiLib.resolve("WlanScan");
|
||||
local_WlanFreeMemory = (WlanFreeMemoryProto)
|
||||
wlanapiLib.resolve("WlanFreeMemory");
|
||||
local_WlanCloseHandle = (WlanCloseHandleProto)
|
||||
wlanapiLib.resolve("WlanCloseHandle");
|
||||
return true;
|
||||
}
|
||||
Q_GLOBAL_STATIC_WITH_ARGS(bool, resolveLibrary, (resolveLibraryInternal()))
|
||||
|
||||
class QNativeWifiEnginePlugin : public QBearerEnginePlugin
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue