mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-27 03:39:39 +03:00
- Fixed a mutex lock in UPnP code
This commit is contained in:
parent
fc10f3c4cd
commit
04a716ac91
2 changed files with 7 additions and 2 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue