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

List:       kde-commits
Subject:    branches/KDE/4.2/kdelibs/plasma
From:       Jacopo De Simoi <wilderkde () gmail ! com>
Date:       2009-03-03 2:08:32
Message-ID: 1236046112.465495.32669.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 934418 by jacopods:

backport - prevents deadlock (deferredRun)
CCBUG: 181057


 M  +9 -5      runnermanager.cpp  


--- branches/KDE/4.2/kdelibs/plasma/runnermanager.cpp #934417:934418
@@ -287,8 +287,9 @@
         FindMatchesJob *runJob = static_cast<FindMatchesJob*>(job);
         if (deferredRun.isEnabled() && runJob->runner() == deferredRun.runner()) {
             //kDebug() << "job actually done, running now **************";
-            deferredRun.run(context);
-            deferredRun = QueryMatch(0);
+            QueryMatch tmpRun = deferredRun;
+            deferredRun = QueryMatch(0);	  
+            tmpRun.run(context);
         }
         searchJobs.removeAll(runJob);
         delete runJob;
@@ -382,10 +383,12 @@
         }
     }
 
+    if (d->deferredRun.isValid()) {
+        d->deferredRun = QueryMatch(0);
+
     match.run(d->context);
 
-    if (d->deferredRun.isValid()) {
-        d->deferredRun = QueryMatch(0);
+
     }
 }
 
@@ -507,8 +510,9 @@
 
     if (d->deferredRun.isEnabled()) {
         //kDebug() << "job actually done, running now **************";
-        d->deferredRun.run(d->context);
+        QueryMatch tmpRun = d->deferredRun;
         d->deferredRun = QueryMatch(0);
+        tmpRun.run(d->context);
     }
 
     d->context.reset();
[prev in list] [next in list] [prev in thread] [next in thread] 

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