1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-15 10:33:59 +02:00

Emit signal when shutdown gets blocked by outstanding db jobs.

This commit is contained in:
Christian Muehlhaeuser
2014-10-25 03:56:04 +02:00
parent 89a2fe3389
commit b1f6edf51b
2 changed files with 7 additions and 2 deletions

View File

@@ -155,16 +155,17 @@ Database::~Database()
workerThread->quit(); workerThread->quit();
} }
emit waitingForWorkers();
if ( m_workerRW ) if ( m_workerRW )
{ {
m_workerRW.data()->wait( 60000 ); m_workerRW.data()->wait();
delete m_workerRW.data(); delete m_workerRW.data();
} }
foreach ( QPointer< DatabaseWorkerThread > workerThread, m_workerThreads ) foreach ( QPointer< DatabaseWorkerThread > workerThread, m_workerThreads )
{ {
if ( workerThread ) if ( workerThread )
{ {
workerThread.data()->wait( 60000 ); workerThread.data()->wait();
delete workerThread.data(); delete workerThread.data();
} }
} }
@@ -174,6 +175,7 @@ Database::~Database()
qDeleteAll( m_commandFactories.values() ); qDeleteAll( m_commandFactories.values() );
delete m_impl; delete m_impl;
emit workersFinished();
} }

View File

@@ -108,6 +108,9 @@ signals:
void newJobRO( Tomahawk::dbcmd_ptr ); void newJobRO( Tomahawk::dbcmd_ptr );
void newJobRW( Tomahawk::dbcmd_ptr ); void newJobRW( Tomahawk::dbcmd_ptr );
void waitingForWorkers();
void workersFinished();
public slots: public slots:
void enqueue( const Tomahawk::dbcmd_ptr& lc ); void enqueue( const Tomahawk::dbcmd_ptr& lc );
void enqueue( const QList< Tomahawk::dbcmd_ptr >& lc ); void enqueue( const QList< Tomahawk::dbcmd_ptr >& lc );