Browse Source

Guard the flag used for deferred session configure.

adaptive-webui-19844
sledgehammer999 8 years ago
parent
commit
5cbc7b16c0
  1. 13
      src/base/bittorrent/session.cpp
  2. 3
      src/base/bittorrent/session.h

13
src/base/bittorrent/session.cpp

@ -911,6 +911,9 @@ void Session::adjustLimits() @@ -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() @@ -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

3
src/base/bittorrent/session.h

@ -41,6 +41,7 @@ @@ -41,6 +41,7 @@
#endif
#include <QNetworkConfigurationManager>
#include <QPointer>
#include <QReadWriteLock>
#include <QStringList>
#include <QVector>
#include <QWaitCondition>
@ -604,6 +605,8 @@ namespace BitTorrent @@ -604,6 +605,8 @@ namespace BitTorrent
QNetworkConfigurationManager m_networkManager;
mutable QReadWriteLock m_lock;
static Session *m_instance;
};
}

Loading…
Cancel
Save