mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-24 18:26:11 +03:00
Guard the flag used for deferred session configure.
This commit is contained in:
parent
1757973f88
commit
5cbc7b16c0
2 changed files with 12 additions and 4 deletions
|
@ -911,6 +911,9 @@ void Session::adjustLimits()
|
|||
void Session::configure()
|
||||
{
|
||||
qDebug("Configuring session");
|
||||
if (!m_deferredConfigureScheduled) return; // Obtaining the lock is expensive, let's check early
|
||||
QWriteLocker locker(&m_lock);
|
||||
if (!m_deferredConfigureScheduled) return; // something might have changed while we were getting the lock
|
||||
#if LIBTORRENT_VERSION_NUM < 10100
|
||||
libt::session_settings sessionSettings = m_nativeSession->settings();
|
||||
configure(sessionSettings);
|
||||
|
@ -2957,10 +2960,12 @@ void Session::initResumeFolder()
|
|||
|
||||
void Session::configureDeferred()
|
||||
{
|
||||
if (!m_deferredConfigureScheduled) {
|
||||
QMetaObject::invokeMethod(this, "configure", Qt::QueuedConnection);
|
||||
m_deferredConfigureScheduled = true;
|
||||
}
|
||||
if (m_deferredConfigureScheduled) return; // Obtaining the lock is expensive, let's check early
|
||||
QWriteLocker locker(&m_lock);
|
||||
if (m_deferredConfigureScheduled) return; // something might have changed while we were getting the lock
|
||||
|
||||
QMetaObject::invokeMethod(this, "configure", Qt::QueuedConnection);
|
||||
m_deferredConfigureScheduled = true;
|
||||
}
|
||||
|
||||
// Enable IP Filtering
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#endif
|
||||
#include <QNetworkConfigurationManager>
|
||||
#include <QPointer>
|
||||
#include <QReadWriteLock>
|
||||
#include <QStringList>
|
||||
#include <QVector>
|
||||
#include <QWaitCondition>
|
||||
|
@ -604,6 +605,8 @@ namespace BitTorrent
|
|||
|
||||
QNetworkConfigurationManager m_networkManager;
|
||||
|
||||
mutable QReadWriteLock m_lock;
|
||||
|
||||
static Session *m_instance;
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue