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

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

SVN commit 934417 by jacopods:

Prevents a deadlock when dealing with a deferredRun
BUG: 181057


 M  +9 -5      runnermanager.cpp  


--- trunk/KDE/kdelibs/plasma/runnermanager.cpp #934416:934417
@@ -163,8 +163,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;
@@ -270,10 +271,12 @@
         }
     }
 
+    if (d->deferredRun.isValid()) {
+        d->deferredRun = QueryMatch(0);
+
     match.run(d->context);
 
-    if (d->deferredRun.isValid()) {
-        d->deferredRun = QueryMatch(0);
+
     }
 }
 
@@ -400,8 +403,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