From b1f6edf51b72c39d3d0e607386d5eb4104721717 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Sat, 25 Oct 2014 03:56:04 +0200 Subject: [PATCH] Emit signal when shutdown gets blocked by outstanding db jobs. --- src/libtomahawk/database/Database.cpp | 6 ++++-- src/libtomahawk/database/Database.h | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) 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 );