- Fixed a mutex lock in UPnP code

This commit is contained in:
Christophe Dumez 2007-03-29 10:06:55 +00:00
parent fc10f3c4cd
commit 04a716ac91
2 changed files with 7 additions and 2 deletions

View file

@ -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:
qDebug("UPnP: %s", msg.str().c_str());
// Unlock the search timeout mutex
upnpCP->m_WaitForSearchTimeout.unlock();
// upnpCP->m_WaitForSearchTimeout.unlock();
upnpCP->searchTimeoutCondition.wakeOne();
break;
}

View file

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