From 989b1e6c2cdfbc3f3715a2573e4d8c2c36710a48 Mon Sep 17 00:00:00 2001 From: Vladimir Golovnev Date: Thu, 16 Mar 2023 09:45:49 +0300 Subject: [PATCH] Improve finished torrent handling PR #18704. Closes #18694. --- src/base/bittorrent/torrentimpl.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/base/bittorrent/torrentimpl.cpp b/src/base/bittorrent/torrentimpl.cpp index e1b5dd86a..d540a5c85 100644 --- a/src/base/bittorrent/torrentimpl.cpp +++ b/src/base/bittorrent/torrentimpl.cpp @@ -1866,25 +1866,24 @@ void TorrentImpl::handleTorrentFinishedAlert(const lt::torrent_finished_alert *p m_statusUpdatedTriggers.enqueue([this]() { - m_hasFinishedStatus = true; - adjustStorageLocation(); manageIncompleteFiles(); m_session->handleTorrentNeedSaveResumeData(this); const bool recheckTorrentsOnCompletion = Preferences::instance()->recheckTorrentsOnCompletion(); - if (isMoveInProgress() || (m_renameCount > 0)) + if (recheckTorrentsOnCompletion && m_unchecked) { - if (recheckTorrentsOnCompletion) - m_moveFinishedTriggers.enqueue([this]() { forceRecheck(); }); - m_moveFinishedTriggers.enqueue([this]() { m_session->handleTorrentFinished(this); }); + forceRecheck(); } else { - if (recheckTorrentsOnCompletion && m_unchecked) - forceRecheck(); - m_session->handleTorrentFinished(this); + m_hasFinishedStatus = true; + + if (isMoveInProgress() || (m_renameCount > 0)) + m_moveFinishedTriggers.enqueue([this]() { m_session->handleTorrentFinished(this); }); + else + m_session->handleTorrentFinished(this); } }); }