[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/runtime/nepomuk/services/queryservice
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2010-11-11 23:02:48
Message-ID: 20101111230248.90AEEAC8A4 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1195761 by trueg:

* Protect all accesses to m_folder with m_folderMutex
* Report the last batch of results before exiting

 M  +9 -2      searchrunnable.cpp  


--- trunk/KDE/kdebase/runtime/nepomuk/services/queryservice/searchrunnable.cpp \
#1195760:1195761 @@ -80,7 +80,10 @@
     if( m_canceled )
         return;
 
+    m_folderMutex.lock();
     kDebug() << m_folder->query() << m_folder->sparqlQuery();
+    const QString sparql = m_folder->sparqlQuery();
+    m_folderMutex.unlock();
 
     QTime time;
     time.start();
@@ -88,7 +91,7 @@
     // we push the results in batches to lower the traffic and improve the user \
experience  QList<Result> resultCache;
 
-    Soprano::QueryResultIterator hits = \
ResourceManager::instance()->mainModel()->executeQuery( m_folder->sparqlQuery(), \
Soprano::Query::QueryLanguageSparql ); +    Soprano::QueryResultIterator hits = \
ResourceManager::instance()->mainModel()->executeQuery( sparql, \
Soprano::Query::QueryLanguageSparql );  while ( !m_canceled &&
             m_folder &&
             hits.next() ) {
@@ -111,9 +114,13 @@
 
     kDebug() << time.elapsed();
 
-    if( m_folder && !m_canceled )
+    QMutexLocker lock( &m_folderMutex );
+    if( m_folder && !m_canceled ) {
+        if( !resultCache.isEmpty() )
+            m_folder->addResults( resultCache );
         m_folder->listingFinished();
 }
+}
 
 
 Nepomuk::Query::Result Nepomuk::Query::SearchRunnable::extractResult( const \
Soprano::QueryResultIterator& it ) const


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic