Ensure thread is stopped before deleting QThread

PR #18037.
This commit is contained in:
Vladimir Golovnev
2022-12-08 08:37:14 +03:00
committed by GitHub
parent 31c7306bd2
commit ac3ad17a9e
18 changed files with 134 additions and 76 deletions

View File

@@ -372,12 +372,12 @@ namespace
SyncController::SyncController(IApplication *app, QObject *parent)
: APIController(app, parent)
, m_freeDiskSpaceChecker {new FreeDiskSpaceChecker}
, m_freeDiskSpaceThread {new QThread}
{
m_freeDiskSpaceThread = new QThread(this);
m_freeDiskSpaceChecker = new FreeDiskSpaceChecker();
m_freeDiskSpaceChecker->moveToThread(m_freeDiskSpaceThread);
m_freeDiskSpaceChecker->moveToThread(m_freeDiskSpaceThread.get());
connect(m_freeDiskSpaceThread, &QThread::finished, m_freeDiskSpaceChecker, &QObject::deleteLater);
connect(m_freeDiskSpaceThread.get(), &QThread::finished, m_freeDiskSpaceChecker, &QObject::deleteLater);
connect(m_freeDiskSpaceChecker, &FreeDiskSpaceChecker::checked, this, &SyncController::freeDiskSpaceSizeUpdated);
m_freeDiskSpaceThread->start();
@@ -385,12 +385,6 @@ SyncController::SyncController(IApplication *app, QObject *parent)
m_freeDiskSpaceElapsedTimer.start();
}
SyncController::~SyncController()
{
m_freeDiskSpaceThread->quit();
m_freeDiskSpaceThread->wait();
}
// The function returns the changed data from the server to synchronize with the web client.
// Return value is map in JSON format.
// Map contain the key: