Browse Source

- Fixed a mutex lock in UPnP code

adaptive-webui-19844
Christophe Dumez 18 years ago
parent
commit
04a716ac91
  1. 7
      src/UPnP.cpp
  2. 2
      src/UPnP.h

7
src/UPnP.cpp

@ -1033,7 +1033,9 @@ m_UPnPPort(udpPort) @@ -1033,7 +1033,9 @@ m_UPnPPort(udpPort)
// Lock it again, so that we block. Unlocking will only happen
// when the UPNP_DISCOVERY_SEARCH_TIMEOUT event occurs at the
// callback.
QMutexLocker lock(&m_WaitForSearchTimeout);
searchTimeoutCondition.wait(&m_WaitForSearchTimeout);
// QMutexLocker lock(&m_WaitForSearchTimeout);s
m_WaitForSearchTimeout.unlock();
}
return;
@ -1364,7 +1366,8 @@ upnpDiscovery: @@ -1364,7 +1366,8 @@ upnpDiscovery:
qDebug("UPnP: %s", msg.str().c_str());
// Unlock the search timeout mutex
upnpCP->m_WaitForSearchTimeout.unlock();
// upnpCP->m_WaitForSearchTimeout.unlock();
upnpCP->searchTimeoutCondition.wakeOne();
break;
}

2
src/UPnP.h

@ -45,6 +45,7 @@ @@ -45,6 +45,7 @@
extern std::string stdEmptyString;
#endif // UPNP_C
#include <QWaitCondition>
/**
* Case insensitive std::string comparison
@ -640,6 +641,7 @@ private: @@ -640,6 +641,7 @@ private:
bool m_IGWDeviceDetected;
CUPnPService *m_WanService;
QMutex m_WaitForSearchTimeout;
QWaitCondition searchTimeoutCondition;
unsigned short m_UPnPPort;
public:

Loading…
Cancel
Save