From c561a2a845227de4dc47de7fd38d793fad8b7b7b Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Tue, 15 Feb 2011 12:34:46 -0500 Subject: [PATCH] I forgot that a thread that is a QObject doesn't do run() and hence doesn't terminate itself -- sending quit signals so the threads don't terminate while still running --- src/musicscanner.cpp | 1 + src/scanmanager.cpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/musicscanner.cpp b/src/musicscanner.cpp index f43359a85..87f04a90a 100644 --- a/src/musicscanner.cpp +++ b/src/musicscanner.cpp @@ -107,6 +107,7 @@ MusicScanner::listerFinished( const QMap& newmtimes ) foreach( const QString& s, m_skippedFiles ) qDebug() << s; + m_dirListerThreadController->quit(); m_dirLister->deleteLater(); } diff --git a/src/scanmanager.cpp b/src/scanmanager.cpp index 8accd9020..11b673ff0 100644 --- a/src/scanmanager.cpp +++ b/src/scanmanager.cpp @@ -30,9 +30,9 @@ ScanManager::ScanManager( QObject* parent ) ScanManager::~ScanManager() { s_instance = 0; + m_musicScannerThreadController->quit(); m_musicScannerThreadController->deleteLater(); m_musicScannerThreadController = 0; - m_scanner->deleteLater(); m_scanner = 0; } @@ -65,8 +65,9 @@ void ScanManager::scannerDestroyed( QObject* scanner ) { qDebug() << Q_FUNC_INFO; - m_scanner = 0; + m_musicScannerThreadController->quit(); m_musicScannerThreadController->deleteLater(); m_musicScannerThreadController = 0; + m_scanner = 0; }