Git commit cca49bde806edc106c719b6b6a7c95ab1c58812e by Christian Mollekopf. Committed on 31/01/2014 at 21:09. Pushed by cmollekopf into branch 'server-search'. Use QMutexLocker where possible. M +6 -12 server/src/search/agentsearchmanager.cpp http://commits.kde.org/akonadi/cca49bde806edc106c719b6b6a7c95ab1c58812e diff --git a/server/src/search/agentsearchmanager.cpp b/server/src/search/a= gentsearchmanager.cpp index ffe3b78..a3df4f3 100644 --- a/server/src/search/agentsearchmanager.cpp +++ b/server/src/search/agentsearchmanager.cpp @@ -56,10 +56,9 @@ AgentSearchManager* AgentSearchManager::instance() = void AgentSearchManager::stop() { - mLock.lock(); + QMutexLocker locker( &mLock ); mShouldStop =3D true; mWait.wakeAll(); - mLock.unlock(); } = void AgentSearchManager::registerInstance( const QString &id ) @@ -133,10 +132,8 @@ void AgentSearchManager::addTask( AgentSearchTask *tas= k ) } while ( query.next() ); mInstancesLock.unlock(); = - mLock.lock(); + QMutexLocker locker( &mLock ); mTasklist.append( task ); - mLock.unlock(); - mWait.wakeAll(); } = @@ -195,16 +192,16 @@ void AgentSearchManager::searchLoop() { qint64 timeout =3D ULONG_MAX; = - mLock.lock(); + QMutexLocker locker( &mLock ); + Q_FOREVER { akDebug() << "Search loop is waiting, will wake again in" << timeout <= < "ms"; mWait.wait( &mLock, timeout ); // wait for a minute = if ( mShouldStop ) { Q_FOREACH (AgentSearchTask *task, mTasklist ) { - task->sharedLock.lock(); + QMutexLocker locker( &task->sharedLock ); task->queries.clear(); - task->sharedLock.unlock(); task->notifier.wakeAll(); } = @@ -254,11 +251,9 @@ void AgentSearchManager::searchLoop() akDebug() << "Search task" << task->id << "available!"; if ( task->queries.isEmpty() ) { akDebug() << "nothing to do for task"; - task->sharedLock.lock(); + QMutexLocker locker( &task->sharedLock ); //After this the AgentSearchTask will be destroyed task->complete =3D true; - task->sharedLock.unlock(); - mTasklist.remove( 0 ); continue; } @@ -304,5 +299,4 @@ void AgentSearchManager::searchLoop() } } } - mLock.unlock(); }