1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-02-02 18:04:32 +00:00

Fix crash on application exit (Qt 6.5)

PR #19169.
This commit is contained in:
Vladimir Golovnev 2023-07-27 15:09:14 +03:00 committed by GitHub
parent 006ad23d0d
commit 11efd26acc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View File

@ -43,6 +43,7 @@
#endif
#include <QCoreApplication>
#include <QMetaObject>
#include "base/version.h"
@ -89,7 +90,7 @@ namespace
const char *msgs[] = {"Catching signal: ", sysSigName[signum], "\nExiting cleanly\n"};
std::for_each(std::begin(msgs), std::end(msgs), safePrint);
signal(signum, SIG_DFL);
QCoreApplication::exit(); // unsafe, but exit anyway
QMetaObject::invokeMethod(qApp, [] { QCoreApplication::exit(); }, Qt::QueuedConnection); // unsafe, but exit anyway
}
#ifdef STACKTRACE

View File

@ -138,7 +138,7 @@ TorrentFilesWatcher *TorrentFilesWatcher::instance()
}
TorrentFilesWatcher::TorrentFilesWatcher(QObject *parent)
: QObject {parent}
: QObject(parent)
, m_ioThread {new QThread}
{
const auto *btSession = BitTorrent::Session::instance();
@ -159,7 +159,7 @@ void TorrentFilesWatcher::initWorker()
connect(m_asyncWorker, &TorrentFilesWatcher::Worker::torrentFound, this, &TorrentFilesWatcher::onTorrentFound);
m_asyncWorker->moveToThread(m_ioThread.get());
connect(m_ioThread.get(), &QThread::finished, m_asyncWorker, &QObject::deleteLater);
connect(m_ioThread.get(), &QThread::finished, this, [this] { delete m_asyncWorker; });
m_ioThread->start();
for (auto it = m_watchedFolders.cbegin(); it != m_watchedFolders.cend(); ++it)