Perform fastresume data saving in separate thread

Closes #4315
This commit is contained in:
Vladimir Golovnev (qlassez)
2015-12-13 15:38:19 +03:00
committed by Vladimir Golovnev (Glassez)
parent 909fc3fa50
commit 4f01660591
5 changed files with 132 additions and 24 deletions

View File

@@ -86,6 +86,7 @@ namespace libtorrent
struct external_ip_alert;
}
class QThread;
class QTimer;
class QStringList;
class QString;
@@ -95,6 +96,7 @@ template<typename T> class QList;
class FilterParserThread;
class BandwidthScheduler;
class Statistics;
class ResumeDataSavingManager;
typedef QPair<QString, QString> QStringPair;
@@ -314,7 +316,6 @@ namespace BitTorrent
void handleExternalIPAlert(libtorrent::external_ip_alert *p);
void saveResumeData();
bool writeResumeDataFile(TorrentHandle *const torrent, const libtorrent::entry &data);
void dispatchAlerts(std::auto_ptr<libtorrent::alert> alertPtr);
void getPendingAlerts(QVector<libtorrent::alert *> &out, ulong time = 0);
@@ -355,6 +356,9 @@ namespace BitTorrent
QPointer<BandwidthScheduler> m_bwScheduler;
// Tracker
QPointer<Tracker> m_tracker;
// fastresume data writing thread
QThread *m_ioThread;
ResumeDataSavingManager *m_resumeDataSavingManager;
QHash<InfoHash, TorrentInfo> m_loadedMetadata;
QHash<InfoHash, TorrentHandle *> m_torrents;