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); } }); }