Browse Source

Fix crash on application exit (Qt 6.5)

PR #19169.
adaptive-webui-19844
Vladimir Golovnev 1 year ago committed by GitHub
parent
commit
11efd26acc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      src/app/signalhandler.cpp
  2. 4
      src/base/torrentfileswatcher.cpp

3
src/app/signalhandler.cpp

@ -43,6 +43,7 @@ @@ -43,6 +43,7 @@
#endif
#include <QCoreApplication>
#include <QMetaObject>
#include "base/version.h"
@ -89,7 +90,7 @@ namespace @@ -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

4
src/base/torrentfileswatcher.cpp

@ -138,7 +138,7 @@ TorrentFilesWatcher *TorrentFilesWatcher::instance() @@ -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() @@ -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)

Loading…
Cancel
Save