diff --git a/src/libtomahawk/database/Database.cpp b/src/libtomahawk/database/Database.cpp index acb298c3d..e005a3895 100644 --- a/src/libtomahawk/database/Database.cpp +++ b/src/libtomahawk/database/Database.cpp @@ -155,16 +155,17 @@ Database::~Database() workerThread->quit(); } + emit waitingForWorkers(); if ( m_workerRW ) { - m_workerRW.data()->wait( 60000 ); + m_workerRW.data()->wait(); delete m_workerRW.data(); } foreach ( QPointer< DatabaseWorkerThread > workerThread, m_workerThreads ) { if ( workerThread ) { - workerThread.data()->wait( 60000 ); + workerThread.data()->wait(); delete workerThread.data(); } } @@ -174,6 +175,7 @@ Database::~Database() qDeleteAll( m_commandFactories.values() ); delete m_impl; + emit workersFinished(); } diff --git a/src/libtomahawk/database/Database.h b/src/libtomahawk/database/Database.h index a4eced5f0..edcbccd11 100644 --- a/src/libtomahawk/database/Database.h +++ b/src/libtomahawk/database/Database.h @@ -108,6 +108,9 @@ signals: void newJobRO( Tomahawk::dbcmd_ptr ); void newJobRW( Tomahawk::dbcmd_ptr ); + void waitingForWorkers(); + void workersFinished(); + public slots: void enqueue( const Tomahawk::dbcmd_ptr& lc ); void enqueue( const QList< Tomahawk::dbcmd_ptr >& lc );